c语言程序编译问题 急! 编译通过,但运行报错是怎么回事?

#include<stdio.h>#include<stdlib.h>#include<math.h>intmain(void){doublem_grade;inti;i... #include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(void)
{
double m_grade;
int i;

i = 0;
while(i == 0)
{
printf("Please enter the scores\n",m_grade);
scanf("%lf",m_grade);
if(m_grade >= 0)
{
switch((int)(m_grade / 10))
{
case 10 :
case 9 :
{
printf("you get a A!");
break;
}
case 8 :
{
printf("you get a B!");
break;
}
case 7 :
{
printf("you get a C!");
break;
}
case 6 :
{
printf("you get a D!");
break;
}
default :
{
printf("you get a E!");
}
}
i = 1;

}
else
{
printf("Invalid values !");
system("cls");
}
}
return 0;
}
这是算法的哪一环节出问题了?
展开
 我来答
_277282419
2016-10-28 · TA获得超过631个赞
知道小有建树答主
回答量:227
采纳率:100%
帮助的人:126万
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(void)
{
    double m_grade;
    int i;
    i = 0;
    while(i == 0)
    {
        printf("Please enter the scores\n",m_grade);
        scanf("%lf",&m_grade);
        if(m_grade >= 0)
        {
            switch((int)(m_grade / 10))
            {
                case 10 :
                case 9  :
                    {
                        printf("you get a A!");
                        break;
                    }
                case 8  :
                    {
                        printf("you get a B!");
                        break;
                    }
                case 7  :
                    {
                        printf("you get a C!");
                        break;
                    }
                case 6  :
                    {
                        printf("you get a D!");
                        break;
                    }
                default :
                    {
                        printf("you get a E!");
                    }
            }
            i = 1;
        }
        else
        {
            printf("Invalid values !");
            system("cls");
        }
    }
    return 0;
}

注意程序中第14行scanf里面的m_grade前面我加了一个&

这个&是取地址运算符了  就是说把你当前输入的值送到m_grade的内存中去

你不加&就意味着输入的值没有地方放  只有加了& 才知道m_grade的地址

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式