用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");

 }

}

Fe兽
2010-12-21 · 超过28用户采纳过TA的回答
知道答主
回答量:94
采纳率:0%
帮助的人:0
展开全部
使用结构体来实现
#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]);
}
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
顺德金力叉车
2010-12-22
知道答主
回答量:2
采纳率:0%
帮助的人:0
展开全部
45451
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式