给定某次考试的n个学生姓名与成绩信息,按60分算及格。按要求输出每个同学是否及格的信息和本次考试总共有多少人及格。
输入格式:
第一有一个整数n,表示本次考试的学生人数。其后n行,每行有一个学生姓名和考试成绩,姓名与成绩之间用空格分隔。姓名最多10个汉字,成绩为整数,取值范围为[0,100]。
输出格式:
先输出n行,如果该学生及格则输出“XXX同学本次考试及格”,否则输出“XXX同学本次考试挂科”。 最后一行,输出“本次考试共X人,其中,及格X人,不及格X人”。
输入样例:
5
张三 0
李四 59
王五 60
赵六 61
周七 100
结尾无空行
输出样例:
张三同学本次考试挂科
李四同学本次考试挂科
王五同学本次考试及格
赵六同学本次考试及格
周七同学本次考试及格
本次考试共5人,其中,及格3人,不及格2人
结尾无空行
提示:汉字可通过%s输入
#include <stdio.h>
int n;
struct Student {
char name[100];
double grade;
};
void scan( struct Student * s );
void print( struct Student * s );
int main(void)
{
scanf("%d", &n);
struct Student s[n];
scan( s );
print( s );
return 0;
}
void scan( struct Student * s )
{
int i;
for ( i=0; i<n; i++ ) {
scanf("%s%lf", s[i].name, &s[i].grade);
}
}
void print( struct Student * s )
{
int i, pass, dnpass;
pass = 0;
dnpass = 0;
for ( i=0; i<n; i++ ) {
if ( s[i].grade>=60 ) {
pass ++;
printf("%s同学本次考试及格\n", s[i].name);
} else {
dnpass ++;
printf("%s同学本次考试挂科\n", s[i].name);
}
}
printf("本次考试共%d人,其中,及格%d人,不及格%d人", n, pass, dnpass);
}