我試圖創建一個程序,其中用戶輸入三個整數,另一個函數檢查他們的輸入是否有效。如果輸入無效,則用戶必須輸入三個新號碼。用戶輸入並使用函數來檢查它是否有效
#include <stdio.h>
int sanitizedInput(int a, int b, int c)
{
if(scanf("%d", &a)==0)
{
printf("Not a number\n");
return 1;
}
else if(scanf("%d", &b)==0)
{
printf("Not a number\n");
return 1;
}
else if(scanf("%d", &c) == 0)
{
printf("Not a number\n");
return 1;
}
else
return 0;
}
int main()
{
int a;
int b;
int c;
int check = 1;
do
{
check = 0;
printf("Enter a number:");
scanf("%d",&a);
printf("Enter a number:");
scanf("%d",&b);
printf("Enter a number:");
scanf("%d",&c);
check = sanitizedInput(a,b,c);
}while(check);
}
然而,當我運行此代碼,進入三個有效的整數後沒有在終端顯示出來,代碼只有進入6點的整數後終止。 (還有其他的功能和代碼的主要功能,如果代碼是必須找到問題告訴我,我將它張貼。)
爲什麼你將讀取變量傳遞給你的函數,然後再讀取另外3個數字? – mame98