C语言的一段程序
下面的一段程序,希望各位帮我修改下(工具DEV-C++)#include<stdio.h>
#include<string.h>
struct stu
{
char nam[20];
int b;
int c;
char d;
char e;
int f;
};
main()
{
int n,i;
scanf("%d",&n);
struct stu l[200];
for(i=0;i<n;i++)
scanf("%s%d%d%c%c%d",l[i].nam,&l[i].b,&l[i].c,l[i].d,l[i].e,&l[i].f);
int m[n];
for(i=0;i<n;i++)m[i]=0;
for(i=0;i<n;i++)
{
if(l[i].b>80&&l[i].f>=1)m[i]+=8000;
if(l[i].b>85&&l[i].c>80)m[i]+=4000;
if(l[i].b>90)m[i]+=2000;
if(l[i].b>85&&l[i].e=='Y')m[i]+=1000;
if(l[i].c>80&&l[i].d=='Y')m[i]+=850;
}
int k=0,u=0;
for(i=0;i<n;i++)
if(m[i]>u){u=m[i];k=i;}
printf("%s\n%d\n",l[k].nam,u);
u=0;
for(i=0;i<n;i++)
u+=m[i];
printf("%d\n",u);
system("pause");
}
测试数据
输入
4
YaoLin 87 82 Y N 0
ChenRuiyi 88 78 N Y 1
LiXin 92 88 N N 0
ZhangQin 83 87 Y N 1
输出
ChenRuiyi
9000
28700
谢谢!!!!!
追问:#include<stdio.h>
#include<string.h>
struct student
{
char name[20];
int pingjun,pingyi;
char ganbu,xibu;
int lunwen;
};struct student stu[101];
int N;char maxname[20];
int max1;
int maxall;void work()
{
int i,maxtemp;
max1=maxall=0;
for(i=1;i<N;i++)
{
maxtemp=0;
if(stu[i].pingjun>80 && stu[i].lunwen!=0)
maxtemp+=8000;
if(stu[i].pingjun>85 && stu[i].pingyi>80)
maxtemp+=4000;
if(stu[i].pingjun>90)
maxtemp+=2000;
if(stu[i].pingjun>85 && stu[i].xibu=='Y')
maxtemp+=1000;
if(stu[i].pingyi>80 && stu[i].ganbu=='Y')
maxtemp+=850;
maxall+=maxtemp;
if(maxtemp>max1)
{
max1=maxtemp;
strcpy(maxname,stu[i].name);
}
}
}main()
{
int i;
FILE *in,*out;
in=fopen("scholar.in","r");
out=fopen("scholar.out","w");
fscanf(in,"%d",&N);
for(i=1;i<=N;i++)
{
fscanf(in,"%s %d %d %c %c %d",stu[i].name,&stu[i].pingjun,&stu[i].pingyi,&stu[i].ganbu,&stu[i].xibu,&stu[i].lunwen);
}
work();
fprintf(out,"%s\n",maxname);
fprintf(out,"%d\n",max1);
fprintf(out,"%d\n",maxall);}
请问,这段程序是正确的,可是,为什么它不用吸收空格和回车??