1樓:常莉忻巨集峻
樓主需要理解一下c語言輸入輸出流的概念。
scanf這個函式以空白字元(空格,製表符,回車符都算)作為間隔符,以回車符作為結束符。
當c語言執行到scanf這句話的時候,會檢查輸入流是否為空,如果為空,程式就會停止,然後等待使用者輸入。
當使用者輸入回車時,輸入結束,c語言會將剛才使用者輸入的資料傳遞給scanf函式,由他來根據程式要求從輸入流中獲取資料。.
for(i=0;
i<10;i++)
scanf();
樓主的這種寫法相當於執行10次scanf。第一次執行scanf時,輸入流一定為空,就等待你的輸入。這個時候只要你不輸入回車,輸入過程就不會停止,就不會執行程式,更別提跳出迴圈了。
當輸入回車的時候,scanf開始掃描,掃描到空白字元的時候,將開始到空白字元之間的字元轉換成十進位制數字賦值給你的引數。第一個scanf結束。
開始執行第二個scanf,如果上次掃描還沒有到末尾,就不會停止等待輸入,就在上次的輸入流基礎上再次掃描,一直到空白符停止。一次類推,當10次scanf結束時,迴圈也就停止了。
樓主所說的輸入大於10個數字而不跳出迴圈,是不是一直沒有敲回車呀,只有敲了回車之後輸入過程才會停止,才會將輸入的資料給scanf去掃描。如果不敲回車,一直處於輸入狀態的。
如果輸入的資料超過10個再敲回車也沒關係,scanf只會把前10個提取出來,後續的數字還在輸入流中而已,如果後面還有scanf,會繼續掃描輸入流。
2樓:匿名使用者
int[10] //這樣定義錯誤
定義陣列,要給陣列起一個名字
例如:int a[10];
int i;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
3樓:jubilee_若今
scanf(%d,a[i])這樣輸
為什麼for(int i=0;i<9;i++) 在c語言中是錯誤的?
4樓:匿名使用者
標準c語言這bai樣寫會出現語法錯誤du的,如果使用t20,這樣zhi寫肯定會出錯dao,無法編譯,正確的版
寫法是:在函權
數的開始申明變數,之後再使用變數,比如:
void fun()
後來很多整合開發環境,是支援for(int i=0;i<9;i++)這種寫法的,不過我的建議還是按照標準的較好,這樣在任何情況下都不會出錯。
5樓:bbk臨兵
因為c99標準以bai前的c標準是du不支援臨時變數在zhifor迴圈中定義的。
c99標準就
dao支援這樣寫。但是目專前有些編譯器並不怎麼願屬意支援c99標準,或者預設以c89模式進行編譯執行。
如果你用的是visual c++6.0的話,那沒辦法,那貨早停止更新了,不可能支援c99了。
如果用的是gcc 的編譯器(v3.0以上)的話,預設按c89編譯。手動編譯時加上-std=c99就行了能按c99標準編譯,上面那樣寫就沒問題了。比如:
gcc -std=c99 tset.c -o test
如果用的是使用gcc編譯器的codeblocks的話,倒是知道怎麼讓它預設自動以c99標準編譯:
settings -> compiler and debugger...
開啟編譯除錯設定面板,在global compiler settings項裡面的other options裡新增-std=c99就行了。
其他使用gcc的ide應該都能設定這個的。
不過建議還是按c89的寫法寫吧,很多地方寫成c99標準的都會出錯,誰叫他們不買c99的帳呢。
6樓:匿名使用者
你是不是在for迴圈外面又用 for 裡面定義的 變數 i 了?
7樓:匿名使用者
換個編譯器看看,我在visual c++6.0中這樣寫不行,在其他的編譯器中(比如說codeblocks、cfree5、gev c++)通過了。
8樓:匿名使用者
c89 可以
c99就不可以
9樓:匿名使用者
我想你以前肯定是學過c++吧!!!!!
雖然說c++是c的升級版,但是還是有區別的嘛!!!!
為什麼for(int i=0;i<9;i++) 在c語言中是錯誤的?
10樓:匿名使用者
標準抄c語言這樣
寫會出現語法錯誤的,如果使bai用t20,這樣寫肯定會出du錯,無zhi法編譯,正確的寫法是:在函dao數的開始申明變數,之後再使用變數,比如:
void fun()
後來很多整合開發環境,是支援for(int i=0;i<9;i++)這種寫法的,不過我的建議還是按照標準的較好,這樣在任何情況下都不會出錯。
c語言中定義了int,為何我輸入了字母或者其他字元
娛樂小八卦啊 這是因為在輸入了一個字母或者其他字元的時候,電腦會自動識別轉換為對應的ascii碼輸入程式。ascii 碼使用指定的7 位或8 位二進位制陣列合來表示128 或256 種可能的字元。標準ascii 碼也叫基礎ascii碼,使用7 位二進位制數 剩下的1位二進位制為0 來表示所有的大寫和...
cin在C語言裡是什麼意思,C語言中int與cin的區別是什麼
叫那個不知道 cin是c 程式語言中的標準輸入流物件,即istream類的物件。cin主要用於從標準輸入讀取資料,這裡的標準輸入,指的是終端的鍵盤。此外,cout是流的物件,即ostream類的物件,cerr是標準錯誤輸出流的物件,也是ostream 類的物件。這裡的標準輸出指的是終端鍵盤,標準錯誤...
在C語言中float與int有什麼不同
float是浮點型,int是整型,float max是定義一個浮點型的變數,名字叫做max 井鈺 其實,你要知道區別的話,很簡單的 相同點 他倆都是基本資料型別.都可以定義該型別的變數不同點 定義變數時,int型別變數和float型別變數所佔用的空間大小不同這個與你的機器有關,看它的字長是多少位的,...