c语言平均绩点_C语言 - ACM题目:平均绩点
題目描述:
每門課的成績分為A、B、C、D、F五個等級,為了計算平均績點,規定A、B、C、D、F分別代表4分、3分、2分、1分、0分。
輸入格式:
有多組測試樣例。每組輸入數據占一行,由一個或多個大寫字母組成,字母之間由空格分隔。
輸出:
每組輸出結果占一行。如果輸入的大寫字母都在集合{A,B,C,D,F}中,則輸出對應的平均績點,結果保留兩位小數。否則,輸出“Unknown”。
樣例輸入
A B C D F
B F F C C A
D C E F
樣例輸出
2.00
1.83
Unknown
// 自己寫的代碼
#include
int main()
{
char a[999];
int i = 0, n = 0, sum, count, j, k, m = 3;
while(gets(a))
{
k = 1;
while(k--)
{
j = 1;
while(j--)
{
i = 0;
n = sum = 0;
count = 0;
while(a[i] != '\0')
{
while(1)
{
if(a[i] == 'A')
{sum += 4;count++;break;}
else if(a[i] == 'B')
{sum += 3;count++;break;}
else if(a[i] == 'C')
{sum += 2;count++;break;}
else if(a[i] == 'D')
{sum += 1;count++;break;}
else if(a[i] == 'F')
{sum += 0;count++;break;}
else if(a[i] == ' ')
break;
else
{n = 1;break;}
}
i++;
}
if(n)
printf("Unknown\n");
else
printf("%.2lf\n", (double)sum / count);
}
}
}
return 0;
}
// 官方給定標準答案
#include
#include
int main()
{
char a[80];
int i,l,n;
double s;
while(gets(a))
{
l=strlen(a);
for(n=s=i=0;i
{
if(a[i]=='A')
s+=4;
else if(a[i]=='B')
s+=3;
else if(a[i]=='C')
s+=2;
else if(a[i]=='D')
s+=1;
else if(a[i]!='F')
n++;
}
printf(n?"Unknown\n":"%.2lf\n",s/((l+1)/2));
}
return 0;
}
總結
以上是生活随笔為你收集整理的c语言平均绩点_C语言 - ACM题目:平均绩点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Epson机械手程序开发(3)机械手报错
- 下一篇: QSettings 操作注册表 与 in