程序中的错误 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;
} 展开
#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;
} 展开
1个回答
展开全部
#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;中的//什么意思? 两个斜杠表示注释语句,这句应该删除,这是无效的赋值语句! 详情可查阅相关资料
认真读了一下你的代码,进行了如下修改,因字数超过了限制,改成了附件,你再看看吧
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询