达州一中2017高考成绩:这个程序哪错了?

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/28 04:35:48
为什么没法输入姓名?:
#include <stdio.h>
struct student
{
int num;
char name[10];
float scorec;
float scorej;
};
double a(float m1,float m2);
void main()
{
struct student stu[5];
int i;
double j;
for (i=0;i<5;i++)
{
printf("请输入学员的编号:");
scanf("%d",&stu[i].num);
printf("请输入学员的姓名:");
gets(stu[i].name);
fflush(stdin);
printf("请输入学员c的成绩:");
scanf("%5.2f",&stu[i].scorec);
printf("请输入学员java的成绩:");
scanf("%5.2f",&stu[i].scorej);
j=a(stu[i].scorec,stu[i].scorej);
printf("%lf",j);
}
}
double a(float m1,float m2)
{
double m;
m=(m1+m2)/2;
return m;
}

scanf("%5.2f",&stu[i].scorec);
输入语句里是不能写格式的
别的就没什么错误了
把这两句改成
scanf("%f",&stu[i].scorec);

#include <stdio.h>
struct student
{
int num;
char name[10];
float scorec;
float scorej;
};
double a(float m1,float m2);
void main()
{
struct student stu[5];
int i;
double j;
for (i=0;i<5;i++)
{
printf("请输入学员的编号:");
scanf("%d",&stu[i].num);
printf("请输入学员的姓名:");
gets(stu[i].name);
fflush(stdin);
printf("请输入学员c的成绩:");
scanf("%f",&stu[i].scorec);
printf("请输入学员java的成绩:");
scanf("%f",&stu[i].scorej);
j=a(stu[i].scorec,stu[i].scorej);
printf("%lf",j);
}
}
double a(float m1,float m2)
{
double m;
m=(m1+m2)/2;
return m;
}

//代码改成这样 "5.2%f" 这样的写法应该是输出的格式 输入的格式直接写成 scanf("%f",&stu[i].scorej); 就好了