我正在學習C語言,目前正在通過命令行程序工作。我有興趣編寫一個程序,它會將n條款添加到彼此,就像普通的計算器一樣。數字n將由用戶輸入的術語的數量定義(與用戶在操作之前明確輸入的用戶指定的n相對)。如何才能做到這一點?我應該使用while
循環嗎?到目前爲止,我試着簡單地定義用戶可以輸入的有限數量的術語(最多10個術語,如果它更少,只需用零替換剩餘術語)。在C中添加n個數字
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;
}
[你嘗試過什麼?](http://mattgemmell.com/2008/12/08/what-have-you-tried/) – Crozin
一個'while'循環是一種選擇;如果你正在處理程序的參數(你知道那裏有多少個參數,或者有一個標記值 - 一個空指針 - 在列表的末尾),'for'循環也是完全可行的。 –
您需要捕獲成功輸入的條目數,這是scanf()的返回值。但是,'scanf()'將一直等到它無法獲得更多的數據,或者它會得到一個無效的數據項。所以,你需要做一些工作,比如用'fgets()'讀行並用'sscanf()'掃描行。您可能需要格式字符串中的某些空格來處理數字和運算符之間的可選空格。如果你捕捉操作符,你不需要菜單選項'a'(儘管你需要提供'op1','op2',...)。 –