帮忙找找错啊啊
c语言吧
全部回复
仅看楼主
level 6
答案错误 。答案错误。。答案错误。。我要疯了

2022年10月10日 08点10分 1
level 6
#include<stdio.h>
#include<malloc.h>
struct stu_mag{
int n;
char na[30];
float ga;
float gb;
float gc;
int k;
};
void swap(float *i,float *j){
float k=*i;
*i=*j;
*j=k;
}
int main(){
struct stu_mag *p=(struct stu_mag*)calloc(5,sizeof(struct stu_mag));
int i;
for(i = 0; i < 5; i ++){
scanf("%d%s%f%f%f",&p[i].n,&p[i].na,&p[i].ga&p[i].gb,&p[i].gc);
}
float t[5];
for(i = 0; i < 5; i ++){
t[i]=(p[i].ga+p[i].gb+p[i].gc)/3;
printf("%d %s %.2f %.2f %.2f %.2f\n",p[i].n,p[i].na,p[i].ga,p[i].gb,p[i].gc,t[i]);
}
int j;
for(i = 0; i < 4; i ++){
for(j = i + 1; j < 5; j ++){
if(t[i]<t[j]){swap(&t[i],&t[j]);
}
}
}
for(i = 0; i < 3; i ++){
for(j = 0; j < 5; j ++){
if((p[j].ga+p[j].gb+p[j].gc)/3 == t[i] && p[j].k == 0){
p[j].k=1;
break;
}
}
printf("%d %s %.2f %.2f %.2f %.2f\n",p[j].n,p[j].na,p[j].ga,p[j].gb,p[j].gc,t[i]);
}
free(p);
return 0;
}
2022年10月10日 08点10分 2
那个scanf是有逗号的,刚不小心删了
2022年10月10日 08点10分
level 8
[黑线]
2022年10月10日 09点10分 5
level 3
main函数里的scanf函数后面几个参数你用了 . 连接,实际应该用 , 连接
2022年10月10日 09点10分 6
scanf里面如果你的两个输入数据之间有空格,那""之内也应该加上对应的空格, %d %s读取的内容是一个整数和一个空格和一个字符串
2022年10月10日 09点10分
这不是结构找成员的运算符嘛,我看的没问题呀
2022年10月10日 09点10分
@Zephyrc &p[i].ga&p[i].gb,看晃眼了,反正这句要改改
2022年10月10日 11点10分
@风刻铭 这这不是这里的问题,逗号我不小心删了
2022年10月10日 11点10分
level 6
你的终端问题在哪?我怎么没发现
2022年10月10日 09点10分 7
level 6
这个是学校oj的题捏,
鼠鼠
好不容易第一次敲这么多,结果还是报错[泪]
2022年10月10日 10点10分 9
level 9
题目发全,看看下面还有什么说明
2022年10月10日 11点10分 11
没了
2022年10月10日 12点10分
1