2017-10-12 21 views
0

我創建一個程序,要求用戶輸入一個整數,並檢查它是否在兩個值之間,如果不是,請求用戶再試一次。我目前遇到了while循環的條件問題。我希望程序檢查用戶輸入的數字是否在28到31之間,但是當我把不等式放入時,它就像完全跳過while循環一樣。 statement on line 8 在此先感謝大家的幫助,我剛開始學習並希望儘可能地學習。這裏是文本形式的代碼而不是圖像形式:int不等式,而條件不工作在C

printf("Enter days in the month (between 28 & 31): "); 
int d = get_int(); 
while (d<28 && d>31) 
{ 
    printf("error"); 
} 
printf("how many pennies on the first day? "); 
float p = get_float(); 
+0

將問題中的問題作爲文本發佈,而不是圖像或指向圖像的鏈接。 – dbush

+2

請在問題中發佈您的代碼,而不是它的圖片。另外,請考慮一個數字如何可以小於28並且大於31.您最希望使用'||'。 –

回答

0

我認爲你用while循環做什麼並不是代碼實際上在做什麼。根據您的描述,您希望不斷提示用戶輸入天數,直到輸入正確的值。然而,你的代碼目前所做的只是詢問一次,然後在while循環中拋出錯誤。也許嘗試像這樣

int d; 
do { 
printf("Enter days in the month (between 28 & 31): "); 
d = get_int(); 
} 
while (d<28 || d>31); 

首先我們聲明變量d。 然後我們開始一個do while循環,它將繼續在循環中運行代碼(要求用戶在月內輸入日期)。如果用戶輸入的值小於28或大於31,則while循環會重置並要求用戶再次輸入值。如果用戶輸入有效值,則循環存在並轉到下一個問題。

+0

非常感謝!當我得到循環不總是假的(忘記||是或),我遇到了這個問題,陷入了試圖分配int DA值,然後重新分配在循環中,試圖使用一個指針,並不能得到它工作。我忘了我可以將d聲明爲int,但不能將其指定爲值。對不起,我還在學習 –

1

您在while循環條件中有一個錯誤的邏輯語句。

它應該是d<28 || d>31。您錯誤地使用和運算符而不是運算符。

+0

此外,如果while循環中的條件爲真,代碼將會一遍又一遍地打印錯誤,因爲它不包含任何其他代碼。 –