#include <stdio.h>
int main(){
while(1 == 1){
int a;
int b;
scanf("%d", &a);
scanf("%d", &b);
if(a > b){
printf("A is bigger than B\n");
}
else if(a == b){
printf("A and B are equal\n");
}
else{
printf("B is bigger than A\n");
}
}
}
一切都按預期作業,但我再次運行程式但它壞了,我不確定為什么但它一遍又一遍地列印最后一條訊息
uj5u.com熱心網友回復:
那是因為您輸入的是浮點數,但scanf只接受整數。
改變
int a; // -2, -1, 0, 1, 2, 3, 4, ...
int b;
scanf("%d", &a);
scanf("%d", &b);
至
float a; // -1.0, -0.5, 0.0, -0.5, 1.0, 2.0, ...
float b;
scanf("%f", &a);
scanf("%f", &b);
uj5u.com熱心網友回復:
函式 scanf() 回傳它已處理的元素數,你應該檢查它。
if (scanf("%d", &a) != 1)
{
fprintf(stderr, "Error: Invalid input.”);
exit(EXIT_FAILURE);
}
您向 scanf 提供了格式說明符 %d,它需要一個整數引數。所以你不能使用浮點數。
有關 scanf 的更多資訊,請在您的 linux 終端上鍵入 man scanf。或者您可以訪問 cpp.reference 站點。
我會避免評論 while 回圈的條件,因為評論已經做了。
uj5u.com熱心網友回復:
現在每次我第二次運行它時它都會給我一個錯誤,即使我沒有輸入任何東西
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/536603.html
標籤:C
上一篇:RNN的PyTorch實作
