求大神指教C語言問題,小女不太會

2021-03-04 09:06:55 字數 2804 閱讀 4469

1樓:匿名使用者

輸出:1,2,3,2,3,3

輸入1 輸出:1,2,3

輸入2輸出:2,3

輸入3輸出:3

因為少break.

輸入,1 2 3回車,

1 2 3

1,2,3,2,3,3

和1回車2回車3回車。

顯示:1

1,2,3,2

2,3,3

3只是顯示的不一樣,運算都一樣。

scanf() 是從標準輸入流 stdio 中讀內容的通用子程式,可以讀入全部固有型別的資料並自動轉換成機內形式。scanf :接受是stdio中的資料,stdio資料結束以回車。

scanf判斷資料局是以空格或tab鍵或者回車鍵或格式化好的形式。如:"%d,%d」。

碰到從資料流中遇到,後才確定是前面輸入的是乙個數。"%d%d」判斷資料是根據:空格或tab鍵或者回車鍵。

當你按鍵盤的時候是乙個輸入的乙個資料流,資料流還沒有判斷完所以,不用在輸入。

你可以這樣測試下:

scanf("%d",&a);

scanf("%d",&b);

scanf("%d",&c);

用加回車或加空格輸入的方式測試下。

2樓:great謝謝啦

scanf語句輸入時 空格,回車,製表符都是會識別的,就是說你一次輸1 2 3 與分三次乙個乙個輸的效果是一樣的,你也可以混合著輸,比如輸1空格2製表符3 回車,是一樣的,每次都只取了分隔符前的數字。

迴圈語句的話,先是b=1,從case1開始執行,因為case語句後面沒有break語句,所以接著執行case的語句,按順序往後面執行,然後繼續for迴圈,b=2,從case2開始執行,同樣因為沒有break,按順序往下執行。

如果有幫助,望採納,也可以繼續追問哦

3樓:匿名使用者

輸出:123233

scanf語句可以自動識別空格,回車和製表符,用你的話說就是按回車,空格(1個或多個)和tab鍵都是確認。就是scanf語句自動忽略空(無論多少個空或回車效果是一樣的)。其實並不能說在c中回車就是確認的意思,回車只是指將以上接收到的資料輸入到快取區。

在for迴圈中,scanf先接收了1(遇到空就停),於是b=1,從入口1進入(case 1),b++是先引用後自加,於是輸出1,b=2,由於沒有遇到出口(break語句),所以繼續向下執行,輸出2,b=3,沒遇到出口繼續向下,輸出3,b=4,到底,出switch。繼續執行scanf語句,接收2,於是b=2,從入口2(case2)進入,繼續,和上面的分析一樣,自己分析一下吧。

4樓:匿名使用者

因為沒有break,所以你輸入1以後,會把case1,case2,case3都列印一遍即:1,2,3。隨後再輸入2,則會執行case2,case3:

2,3..隨後再輸入3,執行default即:3

這題看不太懂,求c語言大神指教

5樓:百合薰衣

第一次輸出x=x-2 x=1

while條件:當執行完x=x-1後x=0,那麼迴圈繼續顯然第一次迴圈執行完後,符合條件進入下一次迴圈第二次迴圈時,x的值已經變為0了所以輸出的是-2(具體操作是x=0-2)

答案是b

6樓:采臣啊啊

嗯,應該是b,因為通過排除得到正確是b

c語言初學者,不太懂這一題怎麼寫,求大神指教

7樓:小魚敏哲

就是插入乙個數之後把這個陣列看成是乙個新的陣列,再重新用排序演算法處理一遍就好了。

簡單,暴力?

c語言,有個程式不太理解,求大神指教.

8樓:匿名使用者

#define bufsize 3 //巨集定義bufsize等於3

char buf[bufsize]; //定義乙個

3元素的一維陣列buf

int bufp = 0; //定義乙個變數bufp並賦值為0

int getch(void) //從陣列buf或者getchar()返回乙個字元

void ungetch(int c) //檢查陣列是否已滿,已滿則顯示字元過多並退出函式,不滿則將c裝入

//陣列

9樓:匿名使用者

return (bufp > 0) ? buf[--bufp] : getchar();

簡化:if (bufp>0)

else

buf[bufp++] = c;

簡化:buf[bufp] = c;

bufp++;

10樓:是經費和

#define bufsize 3

char buf[bufsize];

int bufp = 0;

int getch(void) //從buf中返回棧頂的資料, 當棧為空時, 返回從鍵盤輸入的資料

void ungetch(int c) //將乙個資料壓入棧中, 並檢查是否溢位

//總的來說這個程式模擬是出棧入棧操作

11樓:羊醜

簡單的判斷而已,這應該只是程式的一部分吧

簡單c語言問題,求大神指教小弟這個初學菜鳥,謝謝各位

科學計數法表示的數,多為很小或很大 如題,1e 6 1 10 6 說點題外話,如果對這種格式不了解,可以定義幾個數,用 e輸出看看。1e 6 表示 1 10 6,它是指數形式 c語言初學者,不太懂這一題怎麼寫,求大神指教 就是插入乙個數之後把這個陣列看成是乙個新的陣列,再重新用排序演算法處理一遍就好...

求c語言大神指教啊急用,怎麼回事,求C語言大神指教,急急急急

scanf d d 函式是讀取不到 n 這個字元的,可以改成這樣 e69da5e887aa62616964757a686964616f31333337383234 include int main b矩陣錄入 printf 輸入b矩陣 6x6 n for i 0 i 6 i 計算a b結果並列印 p...

C語言問題,求解答,C語言問題,求大神解答

f函式中的a每次使用外面傳入的2,b是區域性變數,後每次都是1,c是靜態變數,函式每次執行會在上次值 1 所以最後執行三次,輸出為789 程式的輸出是 789 c語言問題,求解答 執行abc a 1 首先進行巨集代換過程,是把 a 1去替代 定義的巨集函式 x x 中的x,即得到式子 a 1 a 1...