c语言输出值为1.#R怎么回事

如题所述

童虎的输入语句和计算语句的顺序反了。

用户应该先输入,再做计算,可以参考下面的代码修改:

float r, h, s, v;

scanf("%f %f, &r, &h);

s = 2 * PI * r * h;

v = PI * r *r *h;

扩展资料:

函数 scanf() 是从标准输入流stdin (标准输入设备,一般指向键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。

函数的第一个参数是格式字符串,它指定了输入的格式,并按照格式说明符解析输入对应位置的信息并存储于可变参数列表中对应的指针所指位置。每一个指针要求非空,并且与字符串中的格式符一一顺次对应。

参考资料来源:百度百科-scanf (计算机语言函数)

参考资料来源:百度百科-c语言

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-11-30

你应该先输入r和h,再计算s和v

也就是这个样子:

#include <iostream>
using namespace std;

#define PI 3.1415926

int main(int argc, char *argv[])
{
    float r, h;
    scanf("%f %f", &r, &h);
    float s = 2 * PI * r * h;
    float v = PI * r * r * h;
    printf("side_area = %.2f\n", s);
    printf("volume = %.2f\n", v);
    return 0;
}

第2个回答  推荐于2017-12-16
你的r h在没有输入前,就对s v进行赋值,导致计算的结果不是一个有效数据。因为此时的r h的内容还是个随机内容,不一定是合理的数据。
浮点型非有效浮点数据就是1.ER这种显示
在scanf()函数后面加赋值,如下:
scanf("5f %d", &r,&h );
s=2*PI*r*h;
v=PI*r*r*h ;本回答被提问者采纳
第3个回答  2014-11-30
输入语句和计算语句的顺序反了。你应该先输入,再做计算
float r, h, s, v;

scanf("%f %f, &r, &h);
s = 2 * PI * r * h;
v = PI * r *r *h;
第4个回答  2014-11-30
额,你获取到数据为什么不用呢
scanf那句放在第一个float之后
多半是因为没有初始化正确
相似回答