
菜鸟提C语言小问题,有热心的老鸟麽。
#include<stdio.h>main(){floatnum;chargrade;scanf("%d",&num);if(num>=90)grade='A';else...
#include<stdio.h>
main()
{
float num;
char grade;
scanf("%d",&num);
if(num>=90) grade='A';
else if(num>=80&&num<89) grade='B';
else if(num>=70&&num<79) grade='C';
else if(num>=60&&num<69) grade='D';
else grade='E';
printf("%c",grade);
getch();
}
为什麼不管输入什麽数,结果都是E呢??还有,如果num<89 num<79 num<69这三个加上等於号变num=<89 num=<79 num=<69就说错误呢? 展开
main()
{
float num;
char grade;
scanf("%d",&num);
if(num>=90) grade='A';
else if(num>=80&&num<89) grade='B';
else if(num>=70&&num<79) grade='C';
else if(num>=60&&num<69) grade='D';
else grade='E';
printf("%c",grade);
getch();
}
为什麼不管输入什麽数,结果都是E呢??还有,如果num<89 num<79 num<69这三个加上等於号变num=<89 num=<79 num=<69就说错误呢? 展开
9个回答
展开全部
1
你的num是float形的;
程序接收后,保存的单精度的;
比如说你输入一个值10给num;
num在程序中存储的是10.000 000;
所以在你下面的判断语句if的条件判断语句全为假;
这样的话就一直执行else语句;
2
你说把num<89 num<79 num<69写成num=<89 num=<79 num=<69;
会报错;
是因为你把<=写成了=<就是说如果你想把89,79,69这三个数引用的话
应该写num<=89 num<=79 num<=69
=是赋值 但你的这里是判断
你的num是float形的;
程序接收后,保存的单精度的;
比如说你输入一个值10给num;
num在程序中存储的是10.000 000;
所以在你下面的判断语句if的条件判断语句全为假;
这样的话就一直执行else语句;
2
你说把num<89 num<79 num<69写成num=<89 num=<79 num=<69;
会报错;
是因为你把<=写成了=<就是说如果你想把89,79,69这三个数引用的话
应该写num<=89 num<=79 num<=69
=是赋值 但你的这里是判断
展开全部
scanf("%d",&num);
改为:
scanf("%f",&num);
或者
float num;
改为
int num;
小于等于 应该用<= 而不是=<
改为:
scanf("%f",&num);
或者
float num;
改为
int num;
小于等于 应该用<= 而不是=<
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
main()
{
int a;
printf("-----------------------\n");
printf("输入a结束程序\n");
printf("-----------------------\n");
for(;getchar()!='a';)
{
printf("----------------------\n");
printf("请输入成绩\n");
scanf("%d",&a);
if(90<=a)printf("A\n");
else if(80<=a&&a<=89)printf("成绩等级为B\n");
else if(70<=a&&a<=79)printf("成绩等级为C\n");
else if(60<=a&&a<=69)printf("成绩等级为D\n");
else if(60>a)printf("成绩等级为E\n");
else printf("错误");
}
}
{
int a;
printf("-----------------------\n");
printf("输入a结束程序\n");
printf("-----------------------\n");
for(;getchar()!='a';)
{
printf("----------------------\n");
printf("请输入成绩\n");
scanf("%d",&a);
if(90<=a)printf("A\n");
else if(80<=a&&a<=89)printf("成绩等级为B\n");
else if(70<=a&&a<=79)printf("成绩等级为C\n");
else if(60<=a&&a<=69)printf("成绩等级为D\n");
else if(60>a)printf("成绩等级为E\n");
else printf("错误");
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这道题用switch来做应该好一些
#include <stdio.h>
main()
{
int num;
char grade;
scanf("%d",&num);
switch(num/10)
{
case 10: case 9: grade='A';
break;
case 8: grade='B';
break;
case 7: grade='C';
break;
case 6: grade='D';
break;
default:grade='E';
}
printf("%c\n",grade);
}
#include <stdio.h>
main()
{
int num;
char grade;
scanf("%d",&num);
switch(num/10)
{
case 10: case 9: grade='A';
break;
case 8: grade='B';
break;
case 7: grade='C';
break;
case 6: grade='D';
break;
default:grade='E';
}
printf("%c\n",grade);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
scanf("%d",&num);
改成scanf("%f", &num);
改成scanf("%f", &num);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用getch() 是没有道理的;
scanf("%d",&num); 改为: scanf("%f",&num);
scanf("%d",&num); 改为: scanf("%f",&num);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询