為什么輸入資料的時候會這樣啊
有沒有人給我看看,問題出在哪兒
代碼有點多,但是很簡單,一眼就看懂的那種。
求大佬幫忙看看。
代碼如下:
#include<stdio.h>
struct ST
{
char id[5];
char name[10];
float score[3];
};
struct ST stu[3];
int max(float a, float b, float c)
{
float t,max;
a > b ? t = a : t = b;
return(c > t ? max = c : max = t);
}
int main()
{
int i,j;
float sum = 0, s1 = 0, s2 = 0, s3 = 0, ave;
for (i = 0; i < 3; i++)
{
printf("請輸入第%d個學生的資訊(除成績外):\n", i + 1);
scanf("%s", stu[i].id);
scanf("%s", stu[i].name);
for (j = 0; j < 3; j++)
{
printf("請輸入第%d個學生的三門成績:\n", j + 1);
scanf("%f", &stu[i].score[j]);
sum += stu[i].score[j];
if (j = 0)
s1 += stu[i].score[j];
if (j = 1)
s2 += stu[i].score[j];
else
s3 += stu[i].score[j];
}
}
ave = sum / 3;
printf("平均成績為:%.2f\n", ave);
printf("最高學生資訊為:\n");
if (max(s1, s2, s3) == s1)
{
printf("學號:%s\n", stu[0].id);
printf("姓名:%s\n", stu[0].name);
printf("成績:%.2f,%.2f,%.2f\n", stu[0].score[0], stu[0].score[1], stu[0].score[2]);
}
if (max(s1, s2, s3) == s2)
{
printf("學號:%s\n", stu[1].id);
printf("姓名:%s\n", stu[1].name);
printf("成績:%.2f,%.2f,%.2f\n", stu[1].score[0], stu[1].score[1], stu[1].score[2]);
}
else
{
printf("學號:%s\n", stu[2].id);
printf("姓名:%s\n", stu[2].name);
printf("成績:%.2f,%.2f,%.2f\n", stu[2].score[0], stu[2].score[1], stu[2].score[2]);
}
return 0;
}



uj5u.com熱心網友回復:
if (j = 0) 改成 if(j==0);下面的if陳述句同樣要改成==uj5u.com熱心網友回復:
修改如下,供參考:#include<stdio.h>
struct ST{
char id[5];
char name[10];
float score[3];
};
struct ST stu[3];
int max(float a, float b, float c)
{
//float t,max;
//a > b ? t = a : t = b;
//return(c > t ? max = c : max = t);
return((a)>(b)?((a)>(c)?(a):(c)):((b)>(c)?(b):(c)));
}
int main(int argc, char* argv[])
{
int i,j;
float sum[3],ave=0,max , s1 = 0, s2 = 0, s3 = 0;
for (i = 0; i < 3; i++)
{
sum[i] = 0;
printf("請輸入第%d個學生的學號和姓名:\n", i + 1);
scanf("%s", stu[i].id);
scanf("%s", stu[i].name);
printf("請輸入第%d個學生的三門成績:\n", i+ 1);
for (j = 0; j < 3; j++)
{
scanf("%f", &stu[i].score[j]);
sum[i] += stu[i].score[j];
}
}
max = sum[0];
for(i=0;i<3;i++){
ave += sum[i]/3;
if(max<sum[i]) max = sum[i];
}
printf("總平均成績為:%.2f\n",ave/3);
for(i=0;i<3;i++){
if(max == sum[i])
printf("最高學生資訊為:\n學號:%s\n姓名:%s\n成績:%.2f,%.2f,%.2f\n",
stu[i].id,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2]);
}
/*
if (j = 0)
s1 += stu[i].score[j];
if (j = 1)
s2 += stu[i].score[j];
else
s3 += stu[i].score[j];
ave = sum / 3;
printf("平均成績為:%.2f\n", ave);
printf("最高學生資訊為:\n");
if (max(s1, s2, s3) == s1)
{
printf("學號:%s\n", stu[0].id);
printf("姓名:%s\n", stu[0].name);
printf("成績:%.2f,%.2f,%.2f\n", stu[0].score[0], stu[0].score[1], stu[0].score[2]);
}
if (max(s1, s2, s3) == s2)
{
printf("學號:%s\n", stu[1].id);
printf("姓名:%s\n", stu[1].name);
printf("成績:%.2f,%.2f,%.2f\n", stu[1].score[0], stu[1].score[1], stu[1].score[2]);
}
else
{
printf("學號:%s\n", stu[2].id);
printf("姓名:%s\n", stu[2].name);
printf("成績:%.2f,%.2f,%.2f\n", stu[2].score[0], stu[2].score[1], stu[2].score[2]);
} */
system("pause");
return 0;
}
uj5u.com熱心網友回復:
漏了平均分數,補充修改:#include<stdio.h>
struct ST{
char id[5];
char name[10];
float score[3];
};
struct ST stu[3];
int max(float a, float b, float c)
{
//float t,max;
//a > b ? t = a : t = b;
//return(c > t ? max = c : max = t);
return((a)>(b)?((a)>(c)?(a):(c)):((b)>(c)?(b):(c)));
}
int main(int argc, char* argv[])
{
int i,j;
float sum[3],ave=0,max , s1 = 0, s2 = 0, s3 = 0;
for (i = 0; i < 3; i++)
{
sum[i] = 0;
printf("請輸入第%d個學生的學號和姓名:\n", i + 1);
scanf("%s", stu[i].id);
scanf("%s", stu[i].name);
printf("請輸入第%d個學生的三門成績:\n", i+ 1);
for (j = 0; j < 3; j++)
{
scanf("%f", &stu[i].score[j]);
sum[i] += stu[i].score[j];
}
}
max = sum[0];
for(i=0;i<3;i++){
ave += sum[i]/3;
if(max<sum[i]) max = sum[i];
}
printf("總平均成績為:%.2f\n",ave/3);
for(i=0;i<3;i++){
if(max == sum[i])
printf("最高學生資訊為:\n學號:%s\n姓名:%s\n成績:%.2f,%.2f,%.2f\n平均分:%.2f\n",
stu[i].id,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],sum[i]/3);
}
/*
if (j = 0)
s1 += stu[i].score[j];
if (j = 1)
s2 += stu[i].score[j];
else
s3 += stu[i].score[j];
ave = sum / 3;
printf("平均成績為:%.2f\n", ave);
printf("最高學生資訊為:\n");
if (max(s1, s2, s3) == s1)
{
printf("學號:%s\n", stu[0].id);
printf("姓名:%s\n", stu[0].name);
printf("成績:%.2f,%.2f,%.2f\n", stu[0].score[0], stu[0].score[1], stu[0].score[2]);
}
if (max(s1, s2, s3) == s2)
{
printf("學號:%s\n", stu[1].id);
printf("姓名:%s\n", stu[1].name);
printf("成績:%.2f,%.2f,%.2f\n", stu[1].score[0], stu[1].score[1], stu[1].score[2]);
}
else
{
printf("學號:%s\n", stu[2].id);
printf("姓名:%s\n", stu[2].name);
printf("成績:%.2f,%.2f,%.2f\n", stu[2].score[0], stu[2].score[1], stu[2].score[2]);
} */
system("pause");
return 0;
}
uj5u.com熱心網友回復:
Ok,懂了懂了,感謝
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/235808.html
標籤:C語言
上一篇:求助
下一篇:C語言程式設計
