怎么错了啊,为什么显示输入有误啊,我输入的都是707070


#include
void main()
{int a,b,c;
 char g;float s;
 printf("请输入学生成绩:\n");
 s=0.3*a+0.3*b+0.4*c;
 scanf("平时:%d期中:%d期末:%d",&a,&b,&c);
 while(s>100||s<0)
 {
     printf("输入有误,请重新输入!\n");
     scanf("%f",s);
 }
 if(s>=90) g='A';
else if(s>=80)g='B';
else if(s>=70)g='C';
else if(s>=60)g='D';
else g='E';
printf("成绩为%.1f分,成绩等级为%c。\n",s,g);
}
 
#include<stdio.h>
int main()
{int a,b,c;
 char g;float s;
while(1) {
 printf("请输入学生成绩:\n");
 scanf("平时:%d期中:%d期末:%d",&a,&b,&c);
 s=0.3*a+0.3*b+0.4*c;
 if (s>100||s<0)
 {
     printf("输入有误,请重新输入!\n");
     continue;
 }
 if(s>=90) g='A';
else if(s>=80)g='B';
else if(s>=70)g='C';
else if(s>=60)g='D';
else g='E';
printf("成绩为%.1f分,成绩等级为%c。\n",s,g);
return 0;
}
return 0;
}

你输入界面截图看一下
并且第7和8行要交换,先输入成绩,然后才能计算s啊。
scanf("%f",s); 改为 scanf("%f",&s);
scanf("平时:%d期中:%d期末:%d",&a,&b,&c);
改为:
scanf("%d%d%d",&a,&b,&c);

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以看下这个问题的回答https://ask.csdn.net/questions/720951
  • 你也可以参考下这篇文章:小程序集成腾讯云实时音视频报签名错误,错误码 70014
  • 除此之外, 这篇博客: 嵌入式系统开发笔记70:质数的判断中的 一、质数的定义 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    质数(prime number)又称素数,有无限个。一个大于1的自然数,除了1和它本身外,不能被其他自然数整除,换句话说就是该数除了1和它本身以外不再有其他的因数;否则称为合数。

    根据算术基本定理,每一个比1大的整数,要么本身是一个质数,要么可以写成一系列质数的乘积;而且如果不考虑这些质数在乘积中的顺序,那么写出来的形式是唯一的。最小的质数是2。

    目前为止,人们未找到一个公式可求出所有质数。

    2016年1月,发现世界上迄今为止最大的质数,长达2233万位,如果用普通字号将它打印出来长度将超过65公里。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^