編寫一個程序,反覆要求用戶輸入0 到100之間的數字,直到用戶輸入超出該範圍的值。然後輸出 最接近50.如何檢查數字是否接近特定數字?
例如數:
輸入一個數字:91.3
輸入一個數字:64.4
輸入一個號碼:38.12
輸入一個數字:46.9
輸入數:99.45
輸入一個號碼:103數最接近50是46.900000
我只學過do,while循環,if和else如果選擇語句。
我知道我需要一個if語句來檢查每個數字與50之間的差異,差異越小,數字越接近50.我包含了stdlib.h,因爲我想我需要取絕對值的差異來避免負數。然而我不知道如何將這個想法融入代碼中。如何編寫代碼?
#include<stdio.h>
#include<stdlib.h>
int main (void)
{
float num;
printf("Enter a number:");
scanf("%f",&num);
while (num>=0 && num<=100)
{
printf("Enter a number:");
scanf("%f",&num);
//I think I would need an if statement here to check the difference
}
printf("\nThe closest is %.2f",/*I think I would need a new variable here.*/);
return 0;
}
所有你需要的是'晶圓廠(50-NUM)',這雖然住在math.h中。 –
使用第一個輸入初始化最接近的數字,並在每次下一個輸入時更新此數字。打印最終結果。如果輸入大於50,新的差異將是(num-50.0),否則新的差異將是(5.0 - num) –
如果你不想包含'math.h',你可以定義你自己的'abs': #define ABS(a)(a)> 0.0? (a): - (a)',但最好只包括'math.h'。順便說一下,'?'和':'形成一個三元運算符。 – ilent2