c - C 中长输入/输出的问题

标签 c loops input output

我必须用 C 编写一个程序,获取未定义数量的 double 值,并根据数字按一定百分比打印它们。当用户输入负值时,程序应该停止。当我使用少量数字时,一切都很好,但是当输入包含大量数字时,程序仅打印最后一个数字。

这是我的代码:

#include <stdio.h>

int main()
{
 double ins=0; //the input

 while(ins>=0){

    scanf("%lf",&ins);
    if(ins<0){break;}
    else{

        if(ins<500){printf("%.2lf ",ins*1.15);}
        else if(ins<=1000){printf("%.2lf ",ins*1.10);}
        else {printf("%.2lf ",ins*1.05);}


         }

 }



   return 0;
}

其他信息:使用 GCC 编译器。

程序应针对特定输入给出的输出示例。

    Input:               

4003.31 1212.35 3414.31
4257.1 1394.37 1217.28
3602.85 4218.58 4994.8
1133.82 1086.48 2117.43
2253.86 3827.71 2170.16
1161.27 3069.77 1338.08
2791.99 3709.33 180.43
4555.77 318.58 1912.24
158.68 2106.49 4439.56
1247.34 -0.79

    Output I should get:
4203.48 1272.97 3585.03 4469.96
1464.09 1278.14 3782.99 4429.51
5244.54 1190.51 1140.80 2223.30
2366.55 4019.10 2278.67 1219.33
3223.26 1404.98 2931.59 3894.80
207.49 4783.56 366.37 2007.85 182.48
2211.81 4661.54 1309.71

我该怎么做才能使程序不仅在少量的情况下而且在像上面这样的数量下都能正常工作?

编辑:我通过上述输入得到的输出是“1309.71”,这只是我应该收到的完整输出的最后一个数字。

最佳答案

注意:您有一个简单的逻辑错误。因为您在 ins<=100 之前检查 ins<500,所以您永远无法遇到 ins<=100 情况。

您的代码和示例数据对我有用。您能更详细地描述一下问题吗?

关于c - C 中长输入/输出的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43335887/

相关文章:

java - 如何在循环中创建 try block ?

python-3.x - 从另一个函数获取数字输入的函数,如果数字为负,则应该给出错误

c++ - 在匹配的内容上丢弃嗅探数据包

c - 如何用最少的代码高效地打印数组元素的所有排列

c - scanf 格式说明符 我想一次性获取输入并分配给两个字符串变量

c - 指针上多个增量运算符的求值顺序

php - 使用 php 和 smarty 以水平方式显示数组数据

arrays - 如何循环查看命令的输出?

为多个文件调用 fgets 两次

PHP 配置文件更新错误 mysql_num_rows