Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C程序设计基本问题 #包括 #包括 内部主(空) { 浮动英寸; printf(“输入英寸数\n”); 扫描频率(“%f\n”,&inches); 浮脚; 漂浮厘米; 浮码; 浮子流量计; 英尺=12*英寸; 厘米=2.54*英寸; 码数=36*英寸; 米=39.37*英寸; printf(“以英尺为单位的金额:%f\n,&英尺); printf(“以厘米为单位的金额:%f\n”,&cm); printf(“以码为单位的金额:%f\n”,&yards); printf(“以米为单位的金额:%f\n,&米); getchar(); 返回0; }_C_Dev C++ - Fatal编程技术网

C程序设计基本问题 #包括 #包括 内部主(空) { 浮动英寸; printf(“输入英寸数\n”); 扫描频率(“%f\n”,&inches); 浮脚; 漂浮厘米; 浮码; 浮子流量计; 英尺=12*英寸; 厘米=2.54*英寸; 码数=36*英寸; 米=39.37*英寸; printf(“以英尺为单位的金额:%f\n,&英尺); printf(“以厘米为单位的金额:%f\n”,&cm); printf(“以码为单位的金额:%f\n”,&yards); printf(“以米为单位的金额:%f\n,&米); getchar(); 返回0; }

C程序设计基本问题 #包括 #包括 内部主(空) { 浮动英寸; printf(“输入英寸数\n”); 扫描频率(“%f\n”,&inches); 浮脚; 漂浮厘米; 浮码; 浮子流量计; 英尺=12*英寸; 厘米=2.54*英寸; 码数=36*英寸; 米=39.37*英寸; printf(“以英尺为单位的金额:%f\n,&英尺); printf(“以厘米为单位的金额:%f\n”,&cm); printf(“以码为单位的金额:%f\n”,&yards); printf(“以米为单位的金额:%f\n,&米); getchar(); 返回0; },c,dev-c++,C,Dev C++,我正在使用devc++ 这是我在C中处理的问题。基本上输入一个以英寸为单位的数字,然后以厘米、码、米和英尺为单位打印数量。这是给我0.0000或者其他的,或者实际上是时间到了。我无法保持屏幕的高亮度,我认为这就是getchar()的目的,但我一定是弄错了。任何帮助都很好。谢谢 编辑1 如何保持DeV C++在屏幕上而不是在我把东西放进去后关闭?我还必须在屏幕弹出时返回任何内容之前输入2个值?为什么 #include <stdio.h> #include <math.h>

我正在使用devc++

这是我在C中处理的问题。基本上输入一个以英寸为单位的数字,然后以厘米、码、米和英尺为单位打印数量。这是给我0.0000或者其他的,或者实际上是时间到了。我无法保持屏幕的高亮度,我认为这就是getchar()的目的,但我一定是弄错了。任何帮助都很好。谢谢

编辑1


如何保持DeV C++在屏幕上而不是在我把东西放进去后关闭?我还必须在屏幕弹出时返回任何内容之前输入2个值?为什么

#include <stdio.h>
#include <math.h>


int main (void)
{
    float inches;
    printf("Enter the number of inches\n");
    scanf("%f\n",&inches);


    float feet;
    float cm;
    float yards;
    float meter;

    feet = 12 * inches;
    cm = 2.54 * inches;
    yards = 36 * inches;
    meter = 39.37 * inches;

    printf("Amount in feet: %f\n", &feet);
    printf("Amount in cm:   %f\n", &cm);
    printf("Amount in yards: %f\n", &yards);
    printf("Amount in meters: %f\n", &meter);




   getchar();

   return 0;

}

请注意,
脚上缺少地址(
&
)操作符。您希望对其他调用应用类似的更改。

使用
printf
,您不给它指定
浮点值的地址,只给它指定值。从
printf
调用中删除
&
s

您需要在
scanf
中输入地址,因为函数修改您传入的变量,但
printf
只需要这些值。实际上,
printf
实际上是将指针重新解释为浮点数,这就是显示垃圾值的原因。

有两个问题:

  • 使用
    scanf()
    的常见问题是,它在未读数字之后保留换行符,并且下面的读取操作(此处为
    getchar()
    )读取它
  • 您不应该传递指向
    printf()
    的指针,而应该传递实际值
  • 关于我不能保持屏幕正常,对于每个试图直接从IDE在图形环境中执行控制台程序的人来说,这是一个常见的问题,特别是对于Dev-C++。问题是没有I/O控制台,然后提供了一个控制台,但只针对程序运行的时间,而且由于程序速度很快,如果在上次输入和输出后不添加暂停,您将没有时间读取输出

    许多MS Windows Dev-C++用户添加了一个可怕的
    系统(“暂停”)
    。我总是建议,如果Dev-C++不能为I/O提供一个带有选项“即使在程序结束后仍保持打开状态”的控制台,那么最好打开一个shell(windows上的cmd或powershell)并直接从那里运行程序

    关于输入问题,不幸的是,扫描有几个缓冲问题,因为对于给定格式无法识别的输入不会被丢弃,并准备进行下一次读取。例如

    printf("Amount in feet: %f\n", feet);
    
    如果将
    1.25 4.5
    作为第一个输入写入,则不会停止第二次扫描,因为
    4.5
    已可用于下一次扫描。在您的例子中,它是一个保留在缓冲区中的换行符,因为getchar已经找到了它,所以它不需要等待输入。你可以用一个
    while(getchar()!=EOF)代替,然后退出,你需要点击CTRL D.< /P>,在屏幕上保存DeV C++,而不是在我把东西放进去之后关闭它呢?我还必须在屏幕弹出时返回任何内容之前输入2个值?为什么???E31:对不起,我对DEV C++一无所知。我建议不要使用DEV-C++ + GUI来运行控制台程序;从命令行运行它们。此外,我希望您使用的是一个单独的MinGW安装,因为Dev-C++捆绑包中提供的MinGW非常旧。其他人已经解决了您的问题,但作为旁注:
    feet=inches/12.0;码数=英寸/36.0;米=英寸/39.37有人告诉我它在windows上是Ctrl-Z,而不是Ctrl-D;我还没有证实,但我想这是真的
    
    scanf("%f", &aFloat);
    scanf("%f", &theNextFloat); // in your case you have the extra getchar();