我这个c语言编程,怎么得不到想要的答案,求助!!

来源:百度知道 编辑:UC知道 时间:2024/06/08 18:29:38
#include<stdio.h>
void main()
{
int a[100],c[100],i,n,p=0;
float b[100],k=0,m;
printf("请输入你的科目数量:");
scanf("%d",&n);
printf("请输入各科成绩:");
for(i=0;i<n;i++)
{scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
{if(a[i]>106) {printf("wrong data\n");break;}
else if (a[i]<0) {printf("wrong data\n");break;}
else
{
if(a[i]<60&&a[i]>=0) {b[i]=0.0;}
else if(a[i]>=60&&a[i]<=63) {b[i]=1.0;}
else if(a[i]>=64&&a[i]<=65) {b[i]=1.5;}
else if(a[i]>=66&&a[i]<=67) {b[i]=1.7;}
else if(a[i]>=68&&a[i]<=71) {b[i]=2.0;}
else if(a[i]>=72&&a[i]<=74) {b[i]=2.3;}
else if(a[i]>=75&&a[i]<=77) {b[i]=2.7;}
else if(a[i]>=78&&a[i]<=81) {b[i]=3.0;}
else if(a[i]>=82&&a[i]<=84) {b[i]=3.3;}
else if(a[i]>=85&&a[i]<=89) {b[i]=3.7;}
else if(a[i]>=90&&a[i]<=100)

m是个实型的,输出的时候用%f
最后一句改成
printf("你的绩点是:%f\n",m); 就OK了
呵呵

找不出来,水平有限啊,有结果了麻烦告诉我一声,谢谢啦
给我发个消息就行

===你一定要注意数据类型!!!这是最容易犯的错。================
1、如果任何一科成绩有问题,后面还是会计算成绩点,这样是不行的;
2、建议你的变量名用有意义的单词,不要用简单的字母;
3、成绩大于100时的赋值意义不明白,所以程序适当加入注释才行;
4、你最后一行的输出成绩点用%d,和m定义的float数据类型不符合,应该改为%f;
5、b[i]=1.5后面添加小写的f;
6、当程序结果不正确时,可以采用断点跟踪,或者输出中间结果的办法来找到错误原因,多调试几次必百度的收获要大

不好意思 帮不到你 不专业

#include<stdio.h>
void main()
{
int a[100],c[100],i,n,p=0;
float b[100],k=0,m;
printf("请输入你的科目数量: ");
scanf("%d",&n);
printf("请输入各科成绩: ");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
{if(a[i]>106||a[i]<0){printf("wrong data\n");break;}
else
{
if(a[i]<60) b[i]=0.0;
else if(a[i]<=63)b[i]=1.0;
else if(a[i]<=65)b[i]=1.5;
else if(a[i]<=67)b[i]=1.7;
else i