#include <stdio.h>
#define N 10
int n=0;
struct student
{
int num;
char name[10];
int src_a;
int src_b;
int src_c;
int src_d;
int sun;
};
void input(struct student str[50] ,int cx)
{
for(;n<cx;n++)
{
printf("学号\t姓名\n");
scanf("%d%s",&str[n].num,str[n].name);
printf("输入成绩a b c d\n");
scanf("%d%d%d%d",&str[n].src_a,&str[n].src_b,&str[n].src_c,&str[n].src_d);
str[n].sun=str[n].src_a+str[n].src_d+str[n].src_c+str[n].src_b;
}
}
void fna(struct student str[])
{
int i;
printf("学号\t总分\n");
for(i=0;i<n;i++)
printf("%d\t%d\n",str[i].num,str[i].sun);
}
void fnb(struct student str[])
{
int i;
printf("学号\t平均分\n");
for(i=0;i<n;i++)
printf("%d\t%3.1f\n",str[i].num,(float)str[i].sun/4);
}
void fnc(struct student str[])
{
int i;
int max=0;
for(i=1;i<n;i++)
if(max<str[i].sun) max=i;
printf("最高分的信息\n");
printf("学号\t姓名\ta\tb\tc\td\t总分\n");
printf("%d\t%s\t%d\t%d\t%d\t%d\t%d\n",str[max].num,str[max].name,str[max].src_a,str[max].src_b,str[max].src_c,str[max].src_d,str[max].sun);
}
void fnd(struct student str[])
{
int i;
printf("学号\t姓名\ta\tb\tc\td\t总分\n");
for(i=0;i<n;i++)
printf("%d\t%s\t%d\t%d\t%d\t%d\t%d\n",str[i].num,str[i].name,str[i].src_a,str[i].src_b,str[i].src_c,str[i].src_d,str[i].sun);
}
void fnf(struct student str[])
{
int tem;
int i,j;
printf("请输入你要删除的学号\n");
scanf("%d",&tem);
for(i=0;i<n;i++)
{
if(str[i].num==tem)
{for(j=i;j<n;j++)
str[j]=str[j+1];
n--;
}
}
}
void main()
{
char in_char;
struct student str[50];
input(str,N);
do{
printf("A打印出四门课的总成绩\n");
printf("B打印出平均成绩\n");
printf("C打印最高分的学生信息\n");
printf("D显示所有学生的信息\n");
printf("E添加一个学上的记录\n");
printf("F删除一个学生的记录\n");
printf("Q退出\n");
scanf("%c",&in_char);
switch(in_char)
{case 'a':
fna(str);
break;
case 'b':
fnb(str);
break;
case 'c':
fnc(str);
break;
case 'd':
fnd(str);
break;
case 'e':
input(str,n+1);
break;
case 'f':
fnf(str);
break;
case 'q':
break;
default:
printf("输入错误");
}
}while(in_char!='q');
}
这个程序怎么在win-tc和turbo c下运行不了,运行的结果是两个像韩国字一样的东东,请各位师兄帮忙解决。