有沒有大神幫我看看 我的代碼到底哪里出了問題呀 第二個printf列印不出來





#include <stdio.h>
#define m 20
void main()
{
char id[m];
char name[m];
float a[m];
float b[m];
float c[m];
int i,n,k=0;
float s1=0,s2=0,s3=0;
float sum1=0,sum2=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{ scanf("%s%s%f%f%f",&id[i],&name[i],&a[i],&b[i],&c[i]);
}
for(i=0;i<n;i++)
{ s1+=a[i]; s2+=b[i]; s3+=c[i];
}
for(i=0;i<n;i++)
{ sum1=a[i]+b[i]+c[i]; if(sum1>sum2) { sum2=sum1; k=i; }
}
printf("%.1f %.1f %.1f\n",s1/n,s2/n,s3/n);
printf("%s %s %.1f %.1f %.1f\n",id[k],name[k],a[k],b[k],c[k]);
}
uj5u.com熱心網友回復:
char id[m];char name[m];
這兩個字符陣列能存盤 n 個學生的學號和姓名嗎?
建議用結構體陣列來存盤學生資訊
uj5u.com熱心網友回復:
char id[m];char name[m];
這里錯了,兩個id,如果id不是一個數的話,應該是二維陣列id[2][m];name[2][m];
這里錯了導致你輸出的時候
printf("%s %s %.1f %.1f %.1f\n",id[k],name[k],a[k],b[k],c[k]);這里也錯了
應該是printf("%s %s %.1f %.1f %.1f\n",&id[k][0],&name[k][0],a[k],b[k],c[k]);
for(i=0;i<n;i++)
{ sum1=a[i]+b[i]+c[i]; if(sum1>sum2) { sum2=sum1; k=i; }
}
這里錯了,兩次都是用的sum1算的總分。
兩個id 應該是個二維陣列
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/105780.html
標籤:C語言
上一篇:水仙花問題,求大神指點!
下一篇:這三個程式的break怎么理解
