70,037
社区成员
发帖
与我相关
我的任务
分享scanf("%s", &p[i].name);
scanf("%s", &p[i].homeaddr);
#include <stdio.h>
#define STUSIZE 5
struct student
{
int num;
char name[20];
char sex[4];
char homeaddr[50];
float yuwen;
float shuxue;
float waiyu;
};
//输入学生信息
void input_stu(struct student p[])
{
int i;
for (i=0; i<STUSIZE; i++)
{
printf("请输入第%d个学生信息:\n", i+1);
printf("请输入学号:\n");
scanf("%d", &p[i].num);
printf("请输入姓名:\n");
scanf("%s", &p[i].name);
printf("请输入性别:\n");
scanf("%s", &p[i].sex);
printf("请输入住址:\n");
scanf("%s", &p[i].homeaddr);
printf("请输入语文成绩:\n");
scanf("%f", &p[i].yuwen);
printf("请输入数学成绩:\n");
scanf("%f", &p[i].shuxue);
printf("请输入外语成绩:\n");
scanf("%f", &p[i].waiyu);
}
}
//检索学生信息
void findstu(struct student stu[], int num)
{
int i = 0;
for(i=0; i<STUSIZE; i++)
{
if(stu[i].num == num)
{
printf("此学生三门课成绩为:语文%.2f 数学%.2f 外语%.2f\n",stu[i].yuwen,stu[i].shuxue, stu[i].waiyu);
break;
}
else
{
printf("未找到此学生!\n");
}
}
}
//显示不及格学生人数
void showstu(struct student stu[])
{
int i, icount=0, acount=0;
for(i=0; i<STUSIZE; i++)
{
if(stu[i].yuwen < 60 || stu[i].shuxue < 60 || stu[i].waiyu < 60)
{
icount ++;
}
if(stu[i].yuwen < 60 && stu[i].shuxue < 60 && stu[i].waiyu < 60)
{
acount ++;
}
}
printf("有一门不及格的人数是:%d 所有课程都不及格的人数是: %d", icount, acount);
}
int main()
{
int n=0;
struct student stu[STUSIZE] = {0};
input_stu(stu);
printf("请输入要检索的学生学号:\n");
scanf("%d", &n);
findstu(stu, n);
showstu(stu);
return 0;
}
