本帖最后由 xieglt 于 2020-11-13 21:50 编辑 #include <stdio.h>
#include<string.h>
int main()
{
int i,j,e=0;
int a = 0;
//结构体名字不要和变量名形同
struct students
{
char name[20];
int num;
int score;
}student[20];
printf("请选择功能:\n");
while(1)
{
printf("0:退出\t1:添加\t2:总览\t3:删除\n");
scanf("%d", &a);
if(a == 0)
{
break;
}
if(a == 1 && e<20)
{
printf("请输入学生姓名,学号,成绩:\n");
scanf("%s%d%d", student[e].name, &student[e].num, &student[e].score);
e++;
}
if(a==2)
{
for(j=0;j<e;j++)
{
//这里输出不要加取址符
printf("%s %d %d\n",student[j].name,student[j].num,student[j].score);
}
}
if(a==3)
{
printf("请输入要删除的学号:\n");
scanf("%d",&a);
j = 0;
for(i=0 ; i<e ; i++)
{
if(a==student[i].num)
{
if(i < 19)
{
memcpy(student+i,student+i+1,sizeof(students)*(e-i-1));
}
student[e-1].name[0] = '\0';
student[e-1].num = 0;
student[e-1].score = 0;
j = 1;
e--;
break;
}
}
if(j == 0)
{
printf("找不到该学号\n");
}
}
}
return 0;
}
|