我正在学习C,目前正在通过命令行程序上班。我有兴趣编写一个程序,它会将 n 术语添加到彼此,就像普通计算器一样。数字 n 将由用户输入的术语数量来定义(与用户在操作之前显式输入的用户指定的 n 相反)。如何才能做到这一点?我应该使用while
循环吗?
到目前为止,我已经尝试过简单地定义一个用户可以输入的有限数量的术语(最多10个术语,如果它更少,只需用零替换剩余的术语)。
scanf("%f%c%f%cf%cf%cf%cf%cf%cf%cf%cf", &num1, &op, &num2, &op, &num3, &op, &num4, &op, &num5, &op, &num6, &op, &num7, &op, &num8, &op, &num9, &op, &num10);
// addition
if (strcmp(&menuchoice, "a") == 0)
{
num3 = num1+num2+num3+num4+num5+num6+num7+num8+num9+num10;
return num3;
}
答案 0 :(得分:3)
如果您只想在输入 n 数字后显示总和,您必须找到所有数字都已输入的方法。一种方法是获得用户可以输入的 sentinel 值。这可以是空行或类似=
的字符串。如果您只是添加正数,则可以使用负数0
来表示所有数字都已输入。
while (1)
{
/* get input */
if (/* should exit */)
break;
sum += input;
}
/* show sum */
如果您尝试模拟计算器,则只需在输入每个数字后显示运行总计。这样你就无法弄清楚 n 的大小。
while (1)
{
/* get input */
sum += input;
/* show sum */
}