HB无影 发表于 2014-3-3 16:53:05

程序老是编译不过啊!输入非数值时循环结束。

本帖最后由 HB无影 于 2014-3-3 17:07 编辑

//程序实现输入一个华氏温度,输出摄氏和绝对温度
//当输入一个非数值时循环结束
#include <stdio.h>
void hanshu(double);         
int main (void)
{
    double huashi;
    printf("qing shu ru yi ge hua shi wen du:");
    scanf("%1f",&huashi);

    while (huashi==1)    //就是这儿,什么叫非数值啊??
    {
      hanshu(huashi);
      printf("qing shu ru yi ge hua shi wen du:");
      scanf("%1f",&huashi);
    }
    printf("end.\n");
    return 0;
}

void hanshu (double huashi)
{
    const double a=1.8,b=32.0,c=273.16;
    printf("huashi=%1f\n",huashi);
    printf("sheshi=%1f\n",huashi*a+b);
    printf("juedui=%1f\n",huashi*a+b+c);
}


zheyitian 发表于 2014-3-3 16:53:06

HB无影 发表于 2014-3-3 17:55 static/image/common/back.gif
LF1F???

double用%lf,float用%f。
这里的lf中是l(字母),不是数字1

HB无影 发表于 2014-3-3 16:55:33

//当输入一个非数值时循环结束,这个是如何用while做条件的呢?

zheyitian 发表于 2014-3-3 17:41:41

是“%lf”吧(LF),不是“%1f”

HB无影 发表于 2014-3-3 17:55:12

zheyitian 发表于 2014-3-3 17:41 static/image/common/back.gif
是“%lf”吧(LF),不是“%1f”

LF1F???

HB无影 发表于 2014-3-3 18:37:01

奥是这样啊   多谢指点!!!

sidfate 发表于 2014-3-3 20:09:12

HB无影 发表于 2014-3-3 16:55 static/image/common/back.gif
//当输入一个非数值时循环结束,这个是如何用while做条件的呢?

while(1)
{
    输入一个数
   判断输入
不是就break;   //你应该懂得
}

HB无影 发表于 2014-3-3 21:10:12

sidfate 发表于 2014-3-3 20:09 static/image/common/back.gif
while(1)
{
    输入一个数


奥break if都可以,但我用了scanf的返回值
页: [1]
查看完整版本: 程序老是编译不过啊!输入非数值时循环结束。