求各位大神用C语言解一下的程序题目

在线等,很急~!!定义一个结构体student,成员包扩姓名,年龄,成绩生成大小为5的student类型的数组,由键盘输出数据,对年龄成绩进行检查,有效的年龄为16-25... 在线等,很急~!!
定义一个结构体student,成员包扩姓名,年龄,成绩生成大小为5的student类型的数组,由键盘输出数据,对年龄成绩进行检查,有效的年龄为16-25,如果非法如30,则年龄设为18岁,有效的成绩为0-100,如果非法如160则成绩为0分,对数组内的五个学生分别检查,然后进行显示输出。
展开
 我来答
碧海风云

2017-06-28 · 碧海风的秘密小据点!
碧海风云
采纳数:909 获赞数:10281

向TA提问 私信TA
展开全部
#include<stdio.h>
 
#define ARRAY_LEN 5 /*学生人数*/

struct student {
char name[20]; /*姓名*/
    int age; /*年龄*/
    float score; /*成绩*/
};

void inputStuInfo (struct student stu[], int n) { /*录入学生信息*/
    int i;

    for (i = 0; i < n; i ++) {
     printf ("请输入第%d个学生信息:\n",i+1);
     printf ("姓名:");
     fflush(stdin); /*清除输入缓冲区,防止此前由scanf输入带入的回车被gets读入*/
     gets (stu[i].name);
      printf ("年龄:");
     scanf ("%d",&stu[i].age); 
     printf ("成绩:");
     scanf ("%f",&stu[i].score);
     printf ("\n");
    }
    printf ("%d个的学生信息均已输入完毕!\n",n);
    
    printf ("\n");
    printf ("======================================================\n\n");
}

void checkStuInfo (struct student stu[], int n) { /*校验学生信息*/
int i,error;
for (i = 0, error=0; i < n; i ++) {
if (stu[i].age<16||stu[i].age>25) {
error=1;
printf ("%s的年龄错误!已强制修改为18。\n",stu[i].name); 
stu[i].age = 18;
}
if (stu[i].score<0||stu[i].score>100) {
error=1;
printf ("%s的成绩错误!已强制修改为0。\n",stu[i].name); 
stu[i].score = 0;
}
}
if (error==0)
printf ("%d个学生信息均无错误!\n",n); 
printf ("\n");
printf ("======================================================\n\n");
}

void printStuInfo (struct student stu[], int n) { /*显示学生信息*/
int i;

printf ("所有学生信息如下:\n"); 
printf ("姓名\t年龄\t成绩\n"); 
for (i = 0; i < n; i ++)
printf ("%s\t%d\t%.2f\n",stu[i].name,stu[i].age,stu[i].score);

printf ("\n");
printf ("======================================================\n\n");
}

int main(void) {
struct student stu[ARRAY_LEN]; /*学生结构体数组*/

inputStuInfo (stu, ARRAY_LEN); /*录入学生信息*/
checkStuInfo (stu, ARRAY_LEN); /*校验学生信息*/
printStuInfo (stu, ARRAY_LEN); /*显示学生信息*/

    return 0;
}

运行结果

为节约时间,运行结果示意将学生人数改为2,源代码为题主要求的5.

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式