gpt4 book ai didi

c - 从键盘上介绍一些学生和他们的分数

转载 作者:行者123 更新时间:2023-11-30 19:28:30 25 4
gpt4 key购买 nike

我需要介绍一个不。学生人数、姓名和分数(3 分)。必须对分数进行平均,然后必须按照插入的相反顺序显示那些通过的学生。问题是,例如,我有3个学生,我需要在结构中介绍4次才能向我展示结果,我需要一个接一个,而不是空格或其他东西。有人可以帮助我吗?谢谢!

#include <stdio.h>
#include <stdlib.h>
struct students
{
char name[100];
char surname[100];
float a,b,c;
};
int main()
{
int n,i,j;
scanf("%d",&n);
struct students s[n];
for(i=1;i<=n;i++)
{
scanf("\n%s %s %f %f %f\n",s[i].name,s[i].surname,&s[i].a,&s[i].b,&s[i].c);

}
for(j=n;j>=1;j--)
{
float m;
m=(s[j].a+s[j].b+s[j].c)/3;
if(s[j].a >= 5 && s[j].b >= 5 && s[j].c >= 5 && m >= 6)
{
printf("%s %s %.2f\n", s[j].name, s[j].surname, m);
}
}
return 0;
}

Example of desired output

最佳答案

问题在于您有一个结构数组,并且您对它们的索引错误。

假设 n = 3,那么您就有一个由 3 个结构组成的数组,索引分别为 0、1 和 2。

首先,您需要将 for 循环的结构读取更改为此

for(i=0;i<n;i++) {
scanf("\n%s %s %f %f %f\n",s[i].name,s[i].surname,&s[i].a,&s[i].b,&s[i].c); }

对于下一个 for 循环,您需要将其更改为这样

for(j=n - 1;j>=0;j--)

希望这有帮助

关于c - 从键盘上介绍一些学生和他们的分数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53877375/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com