void sta(table *x)
{
int a,b,c,d,e;
float A,B,C,D,E,NUM;
int i;
a=b=c=d=e=0;
NUM=(float)x->length;
for(i=x->length;i>0;i--)
{
if(x->r[i].score>100||x->r[i].score<0)
printf("錯誤!%s同學的分數超出上限!\n",x->r[i].name);
else if(x->r[i].score>=90&&x->r[i].score<=100)
a++;
else if(x->r[i].score>=80&&x->r[i].score<=89)
b++;
else if(x->r[i].score>=70&&x->r[i].score<=79)
c++;
else if(x->r[i].score>=60&&x->r[i].score<=69)
d++;
else if(x->r[i].score>=0&&x->r[i].score<=60)
e++;
}
A=NUM/(float)a;
B=NUM/(float)b;
C=NUM/(float)c;
D=NUM/(float)d;
E=NUM/(float)e;
printf("總共有%d位同學\n
分數于90到100的同學有%d位\n
占總人數的%f\n
分數于80到89的同學有%d位\n
占總人數的%f\n
分數于70到79的同學有%d位\n
占總人數的%f\n
分數于60到69的同學有%d位\n
占總人數的%f\n
分數于60以下同學有%d位\n
占總人數的%f\n",x->length,a,A,b,B,c,C,d,D,e,E);
}
錯誤顯示;
F:\Microsoft Visual Studio\MyProjects\1st\1.c(153) : error C2001: newline in constant
F:\Microsoft Visual Studio\MyProjects\1st\1.c(154) : error C2018: unknown character '0xb7'
還有很多一樣的我就不打出來了
而且整個程式太長就只打了這一個函式
uj5u.com熱心網友回復:
哦對了,第一個錯誤對應這行printf("總共有%d位同學\nuj5u.com熱心網友回復:
供參考:void sta(table *x)
{
int a,b,c,d,e;
float A,B,C,D,E,NUM;
int i;
a=b=c=d=e=0;
NUM=(float)x->length;
for(i=x->length;i>0;i--)
{
if(x->r[i].score>100||x->r[i].score<0)
printf("錯誤!%s同學的分數超出上限!\n",x->r[i].name);
else if(x->r[i].score>=90&&x->r[i].score<=100)a++;
else if(x->r[i].score>=80&&x->r[i].score<=89) b++;
else if(x->r[i].score>=70&&x->r[i].score<=79) c++;
else if(x->r[i].score>=60&&x->r[i].score<=69) d++;
else if(x->r[i].score>=0 &&x->r[i].score<=60) e++;
}
A=(float)a/NUM;//A=NUM/(float)a;
B=(float)b/NUM;//B=NUM/(float)b;
C=(float)c/NUM;//C=NUM/(float)c;
D=(float)d/NUM;//D=NUM/(float)d;
E=(float)e/NUM;//E=NUM/(float)e;
printf("總共有%d位同學\n"
"分數于90到100的同學有%d位,占總人數的%f\n"
"分數于80到89的同學有%d位,占總人數的%f\n"
"分數于70到79的同學有%d位,占總人數的%f\n"
"分數于60到69的同學有%d位,占總人數的%f\n"
"分數于60以下同學有%d位,占總人數的%f\n",
x->length,a,A,b,B,c,C,d,D,e,E);
}
uj5u.com熱心網友回復:
要么每行成對的雙引號,要么在\n后面敲回車前敲一個反斜線uj5u.com熱心網友回復:
printf("總共有%d位同學\n
分數于90到100的同學有%d位\n
占總人數的%f\n
分數于80到89的同學有%d位\n
占總人數的%f\n
分數于70到79的同學有%d位\n
占總人數的%f\n
分數于60到69的同學有%d位\n
占總人數的%f\n
分數于60以下同學有%d位\n
占總人數的%f\n",x->length,a,A,b,B,c,C,d,D,e,E);
//應改為
printf("總共有%d位同學\n"
"分數于90到100的同學有%d位\n"
"占總人數的%f\n"
"分數于80到89的同學有%d位\n"
"占總人數的%f\n"
"分數于70到79的同學有%d位\n"
"占總人數的%f\n"
"分數于60到69的同學有%d位\n"
"占總人數的%f\n"
"分數于60以下同學有%d位\n"
"占總人數的%f\n",x->length,a,A,b,B,c,C,d,D,e,E);
uj5u.com熱心網友回復:
2#樓第16行修改為:else if(x->r[i].score>=0 &&x->r[i].score<=59) e++;
uj5u.com熱心網友回復:
void sta(table *x)
{
int a,b,c,d,e;
float A,B,C,D,E,NUM;
int i;
a=b=c=d=e=0;
NUM=(float)x->length;
for(i=x->length;i>0;i--)
{
#if 1
switch (x->r[i].score/10) {
case 8:
case 9:
case 10:
a++;
break;
case 8:
b++;
break;
case 7:
c++;
break;
case 6:
d++;
break;
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
e++;
break;
default:
printf("錯誤!%s同學的分數超出上限!\n",x->r[i].name);
}
#else
if(x->r[i].score>100||x->r[i].score<0)
printf("錯誤!%s同學的分數超出上限!\n",x->r[i].name);
else if(x->r[i].score>=90&&x->r[i].score<=100)
a++;
else if(x->r[i].score>=80&&x->r[i].score<=89)
b++;
else if(x->r[i].score>=70&&x->r[i].score<=79)
c++;
else if(x->r[i].score>=60&&x->r[i].score<=69)
d++;
else if(x->r[i].score>=0&&x->r[i].score<=60)
e++;
#endif
}
/*
A=NUM/(float)a;
B=NUM/(float)b;
C=NUM/(float)c;
D=NUM/(float)d;
E=NUM/(float)e;
*/
A= a/NUM;
B= b/NUM;
C= c/NUM;
D= d/NUM;
E= e/NUM;
printf("總共有%d位同學\n
分數于90到100的同學有%d位\n
占總人數的%f\n
分數于80到89的同學有%d位\n
占總人數的%f\n
分數于70到79的同學有%d位\n
占總人數的%f\n
分數于60到69的同學有%d位\n
占總人數的%f\n
分數于60以下同學有%d位\n
占總人數的%f\n",x->length,a,A,b,B,c,C,d,D,e,E);
}
供參考~
uj5u.com熱心網友回復:
switch (x->r[i].score/10) {
//case 8:
case 9:
case 10:
a++;
break;
case 8:
b++;
break;
case 7:
c++;
break;
case 6:
d++;
break;
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
e++;
break;
default:
printf("錯誤!%s同學的分數超出上限!\n",x->r[i].name);
}改一下
供參考~
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/280749.html
標籤:C語言
上一篇:請問這第一題怎么用C語言完成啊
下一篇:二叉樹
