错误有 下标要求数组或指针类型 名字必须有结构/联合类型 strcmp:太少的实际参数 150
该怎么修改啊!新手求帮忙!!急(由于字数放不下了,我把input子函数删了)#include<stdio.h>#include<string.h>#definep5str...
该怎么修改啊!新手求帮忙!!急(由于字数放不下了,我把input子函数删了)
#include<stdio.h>
#include<string.h>
#define p 5
struct person
{
char name[10];
long int num;
char sex;
int age;
float score;
char Dep;
};
struct person input();
struct person insert();
struct person deleteo();
struct person find();
struct person output();
void main()
{
int i,j;
struct person information[p];
printf("请输入p名学生的信息:姓名 学号 性别 年龄 分数 系别\n");
for(i=0;i<p;i++)
information[i]=input();
printf("\n---------------------\n");
printf("查找一名学生的信息:\n");
find();
printf("插入一名学生的信息;\n");
insert();
printf("删除一名学生的信息:\n");
deleteo();
printf("输出所有学生的信息:\n");
printf("同学们的信息:姓名 学号 性别 年龄 分数 系别\n");
for(j=0;j<p;j++)
output();
printf("完整的学生信息系统就做好啦!赞!\n");
}
struct person insert()
{
int i,j;
struct person news;
printf("想让这名同学插入的位置:\n");
scanf("%d",&i+1);
printf("这位同学的信息是:\n");
news=input();
for(j=p-1;j>=i;j--)
information[j+1]=information[j];
informations[j]=news;
}
struct person deleteo()
{
int i,j;
printf("想让这名同学删除的位置:\n");
scanf("%d",&i);
for(j=i-1;j<p;j++)
{
information[j]=information[j+1];
information[p-1]=0;
}
}
struct person find()
{
int i,j,k;
char one[10];
struct person result;
printf("想要查找的同学的名字:\n");
scanf("%s",one);
for(i=0;i<p;i++);
{
k=strcmp(one,information[i].name);
if(k==0)
result=input();
}
}
struct person output()
{
struct person stu;
printf("%s",stu.name);
printf("%ld%c%d%f%c",stu.num,stu.sex,stu.age,stu.score,stu.Dep);
return stu;
} 展开
#include<stdio.h>
#include<string.h>
#define p 5
struct person
{
char name[10];
long int num;
char sex;
int age;
float score;
char Dep;
};
struct person input();
struct person insert();
struct person deleteo();
struct person find();
struct person output();
void main()
{
int i,j;
struct person information[p];
printf("请输入p名学生的信息:姓名 学号 性别 年龄 分数 系别\n");
for(i=0;i<p;i++)
information[i]=input();
printf("\n---------------------\n");
printf("查找一名学生的信息:\n");
find();
printf("插入一名学生的信息;\n");
insert();
printf("删除一名学生的信息:\n");
deleteo();
printf("输出所有学生的信息:\n");
printf("同学们的信息:姓名 学号 性别 年龄 分数 系别\n");
for(j=0;j<p;j++)
output();
printf("完整的学生信息系统就做好啦!赞!\n");
}
struct person insert()
{
int i,j;
struct person news;
printf("想让这名同学插入的位置:\n");
scanf("%d",&i+1);
printf("这位同学的信息是:\n");
news=input();
for(j=p-1;j>=i;j--)
information[j+1]=information[j];
informations[j]=news;
}
struct person deleteo()
{
int i,j;
printf("想让这名同学删除的位置:\n");
scanf("%d",&i);
for(j=i-1;j<p;j++)
{
information[j]=information[j+1];
information[p-1]=0;
}
}
struct person find()
{
int i,j,k;
char one[10];
struct person result;
printf("想要查找的同学的名字:\n");
scanf("%s",one);
for(i=0;i<p;i++);
{
k=strcmp(one,information[i].name);
if(k==0)
result=input();
}
}
struct person output()
{
struct person stu;
printf("%s",stu.name);
printf("%ld%c%d%f%c",stu.num,stu.sex,stu.age,stu.score,stu.Dep);
return stu;
} 展开
展开全部
struct person information[p];
information作用域不对,struct person find(){}函数无法识别其函数体外的information,要么将information数组作为参数传入,要么将information声明为全局变量
information作用域不对,struct person find(){}函数无法识别其函数体外的information,要么将information数组作为参数传入,要么将information声明为全局变量
更多追问追答
追问
意思是若将information作为全局变量,就必须把它定义在main函数上面?
还有若我将information作为参数传入是不是就是这样的
函数声明struct person find(information[])
函数调用find(information[])
函数定义中多了一个形参的定义,假定是a[p]或a[]
然后将子函数中改为k=strcmp
(one,a[i].name);对吗
意思是若将information作为全局变量,就必须把它定义在main函数上面?
还有若我将information作为参数传入是不是就是这样的
函数声明 struct person find(information[])
函数调用find(information[])
函数定义struct person find(information[])
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询