我必须用 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/