#include<stdio.h>
#include <string.h>
typedef struct Student
{
int num;
char nam[20];
char sex;
int s;
}stu;
void show(int n,stu g[])
{
for(int i=0;i<n;i++)
printf("%d,%s,%c,%d\n",g[i].num,g[i].nam,g[i].sex,g[i].s);
}
int main(){
stu a[100];
a[0]={1001,'ChenChen','M',88};
a[1]={1002,'WangGang','M',66};
a[2]={1004,'ShangFang','F',90};
a[3]={1005,'ChengPong','F',77};
a[4]={1006,'WangPing','M',24};
int q,c=4;
for(int m=1;;m++)
{printf("选择功能:1.插入数据,2.统计不及格人数,3.删除不及格学生信息,4.退出\n");
scanf("%d",&q);
switch(q)
{case 1:
printf("依次输入学号,姓名,性别,成绩");
stu f;
scanf("%d",f.num);
scanf("%s",f.nam);
scanf("%c",f.sex);
scanf("%d",f.s);
for(int k=4;k>=0;k--)
{if(f.num<a[k].num)
a[k+1]=a[k];
else a[k+1]=f;break;
}c++;show(c,a[100]);break;
case 2:
for(int l=4,w=0;l>=0;l--)
{
if(a[l].s<60){
w++;}
printf("%d\n",w);}break;
case 3:
int n=4;
for(int o=0;o<=4;o++){
if(a[o].s<60){for(int j=o;j<=4;j++)
a[j]=a[j+1];}n--;}break;
case 4:return 0;
}
continue;
}}
你得说明白代码功能要求啊
a[0]={1001,'ChenChen','M',88};
这里'ChenChen'应该是"ChenChen",用双引号
其他错误也比较多,参考一下:
记得输入时几个数据项之间用空格分隔
#include<stdio.h>
#include <string.h>
typedef struct Student
{
int num;
char nam[20];
char sex;
int s;
}stu;
void show(int n,stu g[])
{
for(int i=0;i<n;i++)
printf("%d,%s,%c,%d\n",g[i].num,g[i].nam,g[i].sex,g[i].s);
}
int main(){
stu a[100] = {{1001,"ChenChen",'M',88},{1002,"WangGang",'M',66},{1004,"ShangFang",'F',90},{1005,"ChengPong",'F',77},{1006,"WangPing",'M',24}};
int q,c=5;
for(int m=1;;m++)
{
printf("选择功能:1.插入数据,2.统计不及格人数,3.删除不及格学生信息,4.退出\n");
scanf("%d",&q);
switch(q)
{
case 1:
{
printf("依次输入学号 姓名 性别 成绩:\n");
stu f;
scanf("%d %s %c %d",&f.num,f.nam,&f.sex,&f.s);
for(int k=c-1;k>=0;k--)
{
if(f.num<a[k].num)
a[k+1]=a[k];
else
a[k+1]=f;
break;
}
c++;
show(c,a);
}
break;
case 2:
for(int l=c,w=0;l>=0;l--)
{
if(a[l].s<60)
{
w++;
}
printf("%d\n",w);
}
break;
case 3:
{
for(int o=0;o<c;o++)
{
if(a[o].s<60)
{
for(int j=o;j<c;j++)
a[j]=a[j+1];
o--;
}
c--;
}
}
break;
case 4:
return 0;
}
}
}