c语言,好朋友们帮帮忙!
题目:编程输入5位学生信息后再输出这5位学生信息,学生信息包括学号,姓名,成绩,求学生成绩的最高分、最低分和平均分。(要求
学生定义为结构体类型)
代码:
#include <stdio.h>
#define N 2 //为了简便定义两个学生
struct student
{
char xuehao;
char name;
char sex;
int age;
float score;
};
void main()
{
struct student stu;
int i;
float ave,max,sum=0,min;
printf("请输入学生的学号、名字、性别、年龄、成绩\n");
for(i=0;i<=N-1;i++)
scanf("%s%s%c%d%f",&stu.xuehao,&stu.name,&stu.sex,&stu.age,&stu.score);
for(i=0;i<=N-1;i++)
printf("%s%s%c%d%f",stu.xuehao,stu.name,stu.sex,stu.age,stu.score);
max=min=stu.score;
for(i=0;i<=N-1;i++)
sum+=stu.score;
ave=sum/2;
printf("平均分:%f\n",ave);
for(i=0;i<=N-1;i++)
if(stu.score>max)\
max=stu.score;
printf("最高:%f\n",max);
for(i=0;i<=N-1;i++)
if(stu.score<min)
min=stu.score;
printf("最低分:%f\n",min);
} #include <stdio.h>
#define N 5
typedef struct
{
char id, name, gender;
int age;
float score;
}Student;
int main() { // 这不是单片机,这里用 int main() 不是 void
Student stu;
float max = -1, min = 101, sum = 0;
printf("请输入学生的学号、名字、性别、年龄、成绩\n");
for(int i = 0; i < N; ++i) {
scanf("%s%s %c%d%f",
stu.id, // 注意这里没有 '&' 符
stu.name, // 注意这里没有 '&' 符
&stu.gender,
&stu.age,
&stu.score);
max = max > stu.score ? max : stu.score;
min = min < stu.score ? min : stu.score;
sum += stu.score;
}
printf("平均分: %.2f\n", sum / N);
printf("最高分: %.2f\n", max);
printf("最低分: %.2f\n", min);
return 0;
} 傻眼貓咪 发表于 2022-5-6 11:43
谢谢了,我明白哪里错了
#include <stdio.h>
#define N 2 //为了简便定义两个学生
struct student
{
char xuehao;
char name;
char sex;
int age;
float score;
};
void main()
{
struct student stu;
int i;
float ave,max,sum=0,min;
printf("请输入学生的学号、名字、性别、年龄、成绩\n");
for(i=0;i<=N-1;i++)
scanf("%s%s%c%d%f",&stu.xuehao,&stu.name,&stu.sex,&stu.age,&stu.score);//在这里改为 scanf("%s %s %c %d %f",&stu.xuehao,&stu.name,&stu.sex,&stu.age,&stu.score);,让%s%s%c%d%f中间有个空格就可以了
for(i=0;i<=N-1;i++)
printf("%s%s%c%d%f",stu.xuehao,stu.name,stu.sex,stu.age,stu.score);
max=min=stu.score;
for(i=0;i<=N-1;i++)
sum+=stu.score;
ave=sum/2;
printf("平均分:%f\n",ave);
for(i=0;i<=N-1;i++)
if(stu.score>max)\
max=stu.score;
printf("最高:%f\n",max);
for(i=0;i<=N-1;i++)
if(stu.score<min)
min=stu.score;
printf("最低分:%f\n",min);
} 牛肉我刚开始 发表于 2022-5-6 14:58
谢谢了,我明白哪里错了
#include
好的 傻眼貓咪 发表于 2022-5-6 11:43
请问在单片机里为什么要强调是void,而不是int。求解答谢谢 扶风之木 发表于 2022-5-23 22:42
请问在单片机里为什么要强调是void,而不是int。求解答谢谢
这可能跟单片机的硬件有关吧,它的设计就是主函数无返回值,用 void main() 作为主函数,像其它厂牌的开发板也有各自不同的主函数,如 Arduino 则是用 void setup() 作为初始函数,void loop() 作为主函数。虽然都可用C语言编写代码,但还是有些许不同。 傻眼貓咪 发表于 2022-5-24 08:18
这可能跟单片机的硬件有关吧,它的设计就是主函数无返回值,用 void main() 作为主函数,像其它厂牌的 ...
谢谢。额 这又产生了一个问题:主函数有没有返回值对整个程序应该没有影响吧 扶风之木 发表于 2022-5-24 09:17
谢谢。额 这又产生了一个问题:主函数有没有返回值对整个程序应该没有影响吧
如果不是单片机或其它硬件程序,标准 C 语法从来没有 void main() 这种主函数的,int main() 才是 C 主函数。 傻眼貓咪 发表于 2022-5-24 10:22
如果不是单片机或其它硬件程序,标准 C 语法从来没有 void main() 这种主函数的,int main() 才是 C 主函 ...
嗯嗯明白了谢谢
页:
[1]