我想用while
循環來分割n
數字並打印商。例如,如果用戶輸入n = 3,程序將要求輸入3個數字。假設用戶輸入了2,2和3.程序然後執行以下操作:2/2/3,然後打印答案(即0.3333)。我有一個程序,使用while
循環完美地進行加法,除法和乘法運算,但在除法中,它將輸入的所有數字(1/2/2/3)除1。我如何解決它?下面是代碼:while while循環
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
void main(void)
{
int n, k=0;
float total=1, number;
printf("\nEnter the number of elements you want to divide:");
scanf("%d",&n);
printf("Please enter %d numbers one by one: \n",n);
while(k<n)
{
scanf("%f",&number);
total=number/number;
k=k+1;
}
printf("Quotient of %d numbers = %f \n",n,total);
_getch();
}
這一行:float total = 1,應該是float total = 1.0f;首先是因爲1不是浮點數,1.0會默認加倍。 – user3629249 2014-10-27 23:10:03
使用scanf()時總是檢查返回碼(在這種情況下應該是1)以確保實際讀取參數。在第一次調用scanf()之後,應該有一個''作爲format參數的第一個字符,這樣就可以跳過空格(如'\ n')。 – user3629249 2014-10-27 23:12:13
這一行:total = number/number;該代碼將自己分割一個數字,所以很自然,結果將始終爲1.根據您的意見,您希望將每個數字除以前面的數字。你的代碼需要另一個變量'oldNumber'(初始化這個數字爲什麼?),然後執行總數+ = oldNumber/number;如果沒有「+ =」,那麼總價值不是分割操作的總和,而只是最新分割的結果。初始化總數爲1將導致錯誤的結果值,它應該是總= 1.0f; – user3629249 2014-10-27 23:17:44