用C语言输入三个学生的成绩(数学,外语,计算机)姓名学号。要求:输出有挂科的学生的姓名,学号,成绩。
2011-01-04
#include <stdio.h>
#define N 3 //定义学生个数
#define MATH 0
#define ENGLISH 1
#define COMPUTER 2 //定义成绩数组下标,增加程序可读性
typedef struct _Student //定义学生类型
{
long No;
char name[8];
float score[3];
}Student,*PStudent;
int check(PStudent stu) //判断是否有挂科
{
float line = 60.0;
for(int i = 0;i < 3;i ++)
if(stu->score[i] < line) return 0; //低于及格线返回0表示不及格
return 1;
}
void main()
{
Student students[N];
for(int i = 0;i < N;i ++)
{
printf("输入学生%d的信息:\r\n",i+1);
printf("学号:");scanf("%ld",&students[i].No);
printf("姓名:");scanf("%s",&students[i].name);
printf("\r\n数学成绩:");scanf("%f",&students[i].score[MATH]);
printf("英语成绩:");scanf("%f",&students[i].score[ENGLISH]);
printf("计算机成绩:");scanf("%f",&students[i].score[COMPUTER]);
}
printf("------- 不及格的学生 -------\r\n\r\n");
printf("%8s%8s%8s%8s%8s\r\n","学号","姓名","数学","英语","计算机");
for(i = 0;i < N;i ++)
{
if(!check(&students[i]))
{
printf("%8ld",students[i].No);
printf("%8s",students[i].name);
printf("%8.2f",students[i].score[MATH]);
printf("%8.2f",students[i].score[ENGLISH]);
printf("%8.2f",students[i].score[COMPUTER]);
}
printf("\r\n");
}
}
#include<stdio.h>
main()
{
int i,j;
struct student
{
char name[];
float ach[2];
int num;/*定义一个结构体数组*/
}stu[2]; for(i=0;i<3:i++)
{
scanf("%s "&stu[i].mame[]);
scanf("%d"&stu[i].num);
for(j=0;j<3;j++)
scanf("%f",&ach[j]);
for(j=0;j<3;j++)
{if(stu[i].num[j]<60.0)
{printf("%s "stu[i].mame);
printf("%d"stu[i].num);
printf("该学生的成绩为");}
break;}
for(j=0;j<3;j++)
printf("%d",stu[i].ach[j]);
}
}