c语言 编程, 请帮忙

编程,由键盘输入10位学生的基本信息(包括学号,姓名,成绩),根据成绩,设置成绩等级(等级设置:85---100为A,70---84为B,60---69为C,0---59为D.),输出每一位学生的学号及成绩等级以及不及格人数,并将学生的学号,姓名,成绩等级写到文本文件file1.txt中.要求定义和调用函数f(),根据学生成绩设置其等级,并返回所统计的不及格人数.请在程序中添加必要的注释

#include <stdio.h>

#define N 10

typedef struct student {
unsigned id;    // 学号
char name[30];  // 姓名
int score;      // 分数
char rating;    // 等级
}student;

int f(student a[],int n) {
int i,nopass = 0;
for(i = 0; i < n; ++i) {
if(a[i].score >= 85) a[i].rating = 'A';
else if(a[i].score >= 70) a[i].rating = 'B';
else if(a[i].score >= 60) a[i].rating = 'C';
else {
a[i].rating = 'D';
++nopass;
}
}
return nopass;
}

int main() {
student a[N];
int i,nopass;
FILE *fin;
printf("请输入%d名学生的信息:学号 姓名 成绩\n",N);
for(i = 0; i < N; ++i) {
scanf("%u",&a[i].id);
scanf("%s",a[i].name);
scanf("%d",&a[i].score);
}
if((fin = fopen("file1.txt","wb")) == NULL) {
printf("文件打开操作失败!\n");
return 1;
}
nopass = f(a,N);
for(i = 0; i < N; ++i) {
fwrite(&a[i],sizeof(student),1,fin);
printf("学号:%u\n",a[i].id);
printf("姓名:%s\n",a[i].name);
printf("成绩:%d\n",a[i].score);
printf("等级:%c\n\n",a[i].rating);
}
fwrite(&nopass,sizeof(int),1,fin);
fclose(fin);
return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-29
可以看下c 语言课本。。后面的例子有类似的

相关了解……

你可能感兴趣的内容

大家正在搜

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网