简单C语言给个思路?
发布网友
发布时间:2024-03-29 22:52
我来回答
共2个回答
热心网友
时间:2024-04-21 23:23
#include <stdio.h>
int main()
{
int i;
int num;
float avg;
bool flag;
int result;
char str[1000];//用于存储用户的输入绩点
//循环接收
while(true)
{
//中间数据初始化
num = 0;
flag = true;
result = 0;
//获取输入绩点
gets(str);
for(i = 0; str[i] != '\0' && flag; ++i)
{
//过滤空格
if(' ' == str[i])
continue;
switch(str[i])
{
case 'A':
{
result += 4;
break;
}
case 'B':
{
result += 3;
break;
}
case 'C':
{
result += 2;
break;
}
case 'D':
{
result += 1;
break;
}
case 'F':
{
result += 0;
break;
}
default:
{
flag = false;
break;
}
}
++num;
}
if(flag)
{
//无异常输入
avg = (result * 1.0f) / num;
printf("%.2f\n", avg);
}
else
{
//异常输入情况
printf("Unknown\n");
}
}
return 0;
}
请查收!
热心网友
时间:2024-04-21 23:24
就是进行判断,统计,取平均值。难点可能是有输入,就有输出,任意次输入吧
#include<stdio.h>
#include<string.h>
int main()
{
char a[80];
int i,l,n;
double s;
while(gets(a))//我感觉这个是关键;
{
l=strlen(a);
for(n=s=i=0;i<l;i=i+2)//+2是不要空格
{
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;
}