问题:会员基本信息(存放在结构体数组中)包括:会员号、姓名、性别、职业、年龄、电话号码。编写查找函数,查找特定年龄的会员信息(如40岁以上的会员信息)、按照会员号查询会员信息;编写插入函数,插入新会员基本信息。在main函数中验证。要求:会员人数、会员基本信息均由键盘输入。
#include<stdio.h>
#include<string.h>
#define M 80
struct member
{
int number;
char name[10];
char sex[10];
char occupation[10];
int age;
char m[12];
};
int Find1 (struct member mem[M],int n,int x)
{
int i;
for(i=0;i<n;i++)
{
if(x>40)
return i;
return -1;
}
printf("member number: %d\n");
printf("member name: %s\n");
printf("member sex: %s\n");
printf("member occupation: %s\n");
printf("member age: %s\n");
printf("member m: %f\n");
}
int Find2 (struct member mem[M],int n,int x)
{int i,j,number;
printf("请输入会员号:\n",n);
scanf("%d",&n);
if(mem[i].number==n)
printf("member number: %d\n",mem[i].number);
printf("member name: %s\n",mem[i].name);
printf("member sex: %s\n",mem[i].sex);
printf("member occupation: %s\n",mem[i].occupation);
printf("member age: %s\n",mem[i].age);
printf("member m: %f\n",mem[i].m);
return j;
return -1;}
void main()
{
struct member mem[M];
int n,i,j,x,number;
printf("请输入会员人数:",n);
scanf("%d",&n);
printf("请输入会员基本信息:\n");
for(i=0;i<n;i++)
{printf("第%d位会员的会员号:",i+1);
scanf("%1d",&mem[i].number);
printf("第%d位会员的姓名:",i+1);
scanf("%s",mem[i].name);
printf("第%d位会员的性别:",i+1);
scanf("%s",mem[i].sex);
printf("第%d位会员的职业:",i+1);
scanf("%s",mem[i].occupation);
printf("第%d位会员的年龄:",i+1);
scanf("%ld",&mem[i].age);
printf("第%d位会员的电话号码:",i+1);
scanf("%ld",&mem[i].m);
x= Find1 (mem,n,x);
number=Find2 (mem,n,x);
}
你这里主要是printf格式化输出和scanf格式化输入的一些相关的一些代码问题,你可以试着用vs编译调试一下你的代码,会一眼看出这些基础问题。
我这里只是简单调试了一下报错,使代码能运行,具体的业务可能是有问题的,你自己调整,
#include<stdio.h>
#include<string.h>
#define M 80
struct member
{
int number;
char name[10];
char sex[10];
char occupation[10];
int age;
char m[12];
};
int Find1(struct member mem[M], int n, int x)
{
int i;
for (i = 0; i < n; i++)
{
if (x > 40)
return i;
return -1;
}
return 0;
}
int Find2(struct member mem[M], int n, int x)
{
int i = 0, number;
printf("请输入会员号:\n");
scanf_s("%d", &n);
if (mem[i].number == n) //这里肯定有问题的
printf("member number: %d\n", mem[i].number);
printf("member name: %s\n", mem[i].name);
printf("member sex: %s\n", mem[i].sex);
printf("member occupation: %s\n", mem[i].occupation);
printf("member age: %d\n", mem[i].age);
printf("member m: %s\n", mem[i].m);
return -1;
}
int main()
{
struct member mem[M];
int n, i, j, x = 0, number;
printf("请输入会员人数:");
scanf_s("%d", &n);
printf("请输入会员基本信息:\n");
for (i = 0; i < n; i++)
{
printf("第%d位会员的会员号:", i + 1);
scanf_s("%d", &mem[i].number);
printf("第%d位会员的姓名:", i + 1);
scanf_s("%s", mem[i].name, 10);
printf("第%d位会员的性别:", i + 1);
scanf_s("%s", mem[i].sex, 10);
printf("第%d位会员的职业:", i + 1);
scanf_s("%s", mem[i].occupation, 10);
printf("第%d位会员的年龄:", i + 1);
scanf_s("%d", &mem[i].age);
printf("第%d位会员的电话号码:", i + 1);
scanf_s("%s", &mem[i].m,12);
x = Find1(mem, n, x);
number = Find2(mem, n, x);
}
return 0;
}