求助,大神帮看看这个运行起来怎么提示内存不能read
#include<stdio.h>#include<stdlib.h>
#include<string.h>
#include<math.h>
#define COUNT 100
void init(void);
void input(void);
void count(void);
void brow(void);
struct student
{
int num;
int age;
char sex[4];
char name[10];
int score1;
int score2;
int score3;
int score4;
char score5;
float zf;
}
st[COUNT];
int sm;
void main()
{
int x;
init();
do
{
printf("\t\t\t 学生成绩管理系统 \t\t\t\n");
printf("\t\t1:__________输入\n");
printf("\t\t2:__________浏览\n");
printf("\t\t3:__________统计\n");
printf("\t\t0:__________退出\n");
printf("请输入你的选择:");
scanf("%d", &x);
switch(x)
{
case 1: input(); break;
case 2: brow(); break;
case 3: count(); break;
case 0: printf("谢谢使用,再见\n"); break;
}
} while (x != 0);
return ;
}
void init(void)
{
memset(st,0,sizeof(st));
sm = 0;
}
void input(void)
{ int i, n, t, j;
printf("请输入学生数量:");
scanf("%d", &n);
sm = n;
for (i = 0;i < n; i++)
{
printf("请输入第%d个学生的成绩:\n",i+1);
printf("请输入学号:");
fflush(stdin);
scanf("%d", &st[i].num);
printf("请输入年龄:");
scanf("%d",&st[i].age);
printf("请输入性别:");
scanf("%s",st[i].sex);
for (t = 0; t < i; t++)
{
if (st[i].num == st[t].num)
{
printf("该学生的学号已存在,请重新输入!\n");
fflush(stdin);
scanf("%d", &st[i].num);
t = 0;
}
}
printf("请输入姓名:");
scanf("%s", st[i].name);
printf("请输入数学分析成绩:");
scanf("%d", &st[i].score1);
printf("请输入高等代数成绩:");
scanf("%d", &st[i].score2);
printf("请输入英语成绩:");
scanf("%d", &st[i].score3);
printf("请输入概率统计成绩:");
scanf("%d", &st[i].score4);
printf("请输入体育成绩:");
scanf("%s", &st[i].score5);
}
}
void count(void)
{
int i;
for (i = 0; i < sm; i++)
{
if (st[i].score5=='优')
st[i].score5=90;
else if(st[i].score5=='良')
st[i].score5=80;
else if(st[i].score5=='中')
st[i].score5=70;
else if(st[i].score5=='及')
st[i].score5=60;
else if(st[i].score5=='差')
st[i].score5=50;
st[i].zf = 0;
st[i].zf = st[i].score1 + st[i].score2 + st[i].score3 + st[i] .score4 + st[i].score5;
printf("第%d位学生的总成绩为%f",i+1,st[i].zf);
}
}
void brow(void)
{
int i;
for (i = 0; i < sm; i++)
{
printf("第%d个学生信息\n", i + 1);
printf("学号:%4d\n", st[i].num);
printf("姓名:%s\n", st[i].name);
printf("性别:%s\n", st[i].sex);
printf("年龄:%d\n", st[i].age);
printf("第一门成绩:%d\n", st[i].score1);
printf("第二门成绩:%d\n", st[i].score2);
printf("第三门成绩:%d\n", st[i].score3);
printf("第四门成绩:%d\n", st[i].score4);
printf("第五门成绩:%s\n", st[i].score5);
printf("\n");
}
}
详细运行结果见6楼
[ 本帖最后由 s289436620 于 2013-1-12 11:01 编辑 ]