為什么我試著輸入一些非數字的值,比如A,它會不等我輸入第二個值直接就輸出1呢
uj5u.com熱心網友回復:
不輸入整型值,而輸入字符的話,系統雖然會讀取輸入的字符,但是并不存盤到先前定義的變數里。程式輸出1,應該是因為系統給兩個變數初始化的值相同。至于你說的“程式不等輸入第二個值就直接輸出1”,我沒遇到這個情況,我輸入了兩個字符之后再按了回車鍵之后,程式才輸出1的。
uj5u.com熱心網友回復:
我查了一下,是因為回車本身也算輸入了
uj5u.com熱心網友回復:
鍵入資料與要求的型別不匹配,scanf函式會在這時終止,從而忽略后面的輸入。所以鍵入了一個字符,按了回車,scanf函式會覺得第一個資料已經輸入了,但是發現型別不匹配,所以終止了輸入。要求輸入是字符的時候,回車和空格算是輸入uj5u.com熱心網友回復:
樓主,為什么我同樣的代碼,只是加了列印。結果和你的不一樣呀。代碼:
#include "stdio.h"
void main()
{
int a,b;
printf("before scanf-Func: a = %d, b = %d\n", a, b);
scanf("%d%d",&a ,&b);
printf("after scanf-Func: a = %d, b = %d\n", a, b);
if(a==b)
{
printf("logic print 1\n");
}
return;
}
結果:
before scanf-Func: a = 134513969, b = -1078386884
a
after scanf-Func: a = 134513969, b = -1078386884
????
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/105782.html
標籤:新手樂園
上一篇:這三個程式的break怎么理解
