1
我正在編寫一個代碼,提示用戶輸入他們選擇的天數(3-10)之間的高點和低點。到目前爲止,除了scanf函數之外,所有的輸出都是正確的,用於輸入比它們應該低一行的高溫和低溫。例如第1天的高電平和低電平將會輸出,但用戶的輸入始於第1天的低電平,所以高電平的輸入接近低電平,低電平的輸入接下一空白行。Scanf跳過一行
我認爲這個問題可能是printf正在完成它在scanf生效之前輸出高電平和低電平的功能。有什麼辦法可以讓scanf發生,以便高低值可以相鄰輸入?這裏是我的代碼:
#include <stdio.h>
int main (void)
{
int i;
int limit;
int day[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int high[10],low[10];
printf("---===IPC Temperature Analyzer V2.0===---\n");
printf("Please enter the number of days between 3 and 10, inclusive: ");
scanf("%d", &limit);
while (limit <= 2 || limit >= 11) {
printf("Invalid");
scanf("%d", &limit);
}
for(i = 0;i < limit; i++) {
printf("Day %d - High:\n Day %d - Low: ",day[i],day[i]);
scanf("%d%d", &high[i], &low[i]);
}
return 0;
}
光標在屏幕上會在最後打印輸出的結束,所以你看到的是它如何工作的。您可以要求用戶分別輸入高和低,如printf(「Day%d - Hight:」,day [i]); scanf(「%d」,&high [i]); printf(「Day%d - Low:「,day [i]); scanf(」%d「,&low [i]); – Shiping
提示中的'\ n'將您移至下一行。神奇地期望系統如何實現你想讓光標上移一行?打印第一個條目的提示,獲取其輸入,然後提示第二個條目,並獲取其輸入。 –
我將您的建議應用於Wasi,現在按預期工作,謝謝!我最初嘗試過這種方法,但我相信當時我的代碼中有其他錯誤,導致它輸出所有的高點,然後輸出所有的低點。 – Jinto