程序中的错误 1、下标要求数组或指针类型 2、名字必须有结构类型 3、strcmp:太少的实际参数

该怎么修改啊!新手求帮忙!!急#include<stdio.h>#include<string.h>#definep5structperson{charname[10];... 该怎么修改啊!新手求帮忙!!急
#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 input()
{
struct person stu;
scanf("%s",stu.name);
scanf("%ld%c%d%f%c",&stu.num,&stu.sex,&stu.age,&stu.score,&stu.Dep);
return stu;
}
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;
}
展开
 我来答
kaixingui2012
推荐于2016-11-21 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6400万
展开全部
#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();
 void insert(); 
 void deleteo();
 void find(); 
 void output();
 
 struct person information[p];
 
 void main()
 {
 int i,j;
 
 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 input()
 {
 struct person stu;
 scanf("%s",stu.name);
 scanf("%ld%c%d%f%c",&stu.num,&stu.sex,&stu.age,&stu.score,&stu.Dep);
 return stu;
 }
 void 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];
 information[j]=news; //
 }
 void 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;
 }
 void find()
 {
 int i,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();
 }
 }
 void output()
 {
 struct person stu;
 printf("%s",stu.name);
 printf("%ld%c%d%f%c",stu.num,stu.sex,stu.age,stu.score,stu.Dep);
 }
更多追问追答
追问
为什么要将子函数都改成void型的?
还有//information[p-1]=0;中的//什么意思?完全不懂
追答

为什么要将子函数都改成void型的?   函数不需要返回值的,都要写void类型

//information[p-1]=0;中的//什么意思?   两个斜杠表示注释语句,这句应该删除,这是无效的赋值语句!   详情可查阅相关资料

认真读了一下你的代码,进行了如下修改,因字数超过了限制,改成了附件,你再看看吧


推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式