關於C語言中的小問題,關於C語言中的一個小問題

2021-08-03 14:08:01 字數 2051 閱讀 4606

1樓:

其實我覺得你說得對,這個程式編的有些問題,你試著先輸出非空格的字元,程式會跳過

if(c == ' ')

這個判斷,然後lastc = c後lastc中就存有你之前輸入的字元,你在輸入空格下次lastc = c中就會存有空格。如果你先輸入空格,程式就會崩潰,應為lastc未定義,我用的vs2010已經試過了,你可以試試。望採納

2樓:匿名使用者

當輸入的第一個字元是‘ ’時,此時的lastc是0或其他隨機值(不要不是‘ ’就好),判斷成立。

當輸入的第一個不是‘ ’,繼續第二個字元(比如‘a’)輸入,lastc=‘a’,然後輸入第三個字元是‘ ’,此時依舊成立。

3樓:匿名使用者

因為while中最後一條語句已將c值賦給lastc了。

語言不是太嚴謹,因為如果第一次c==‘’,而此時lastc並不是‘’。

4樓:姑蘇丞燁

lastc = c;

lastc是記錄上次輸出的c,如果為空格則不輸出 空格,如果不為空則輸出空格。

整個程式是在輸出c而lastc只是起到標記的功能。

if(c == ' ')

起到將連續的多個空格用一個空格代替的作用。

5樓:匿名使用者

就是說如果輸入c之後,判斷上一個輸入的c即 lastc,如果上一個c不是空格,就輸出這次的c。採納吧。。。。

由於while迴圈,如果第一次迴圈時c是空格,if(c == ' '){ if(lastc != ' ') putchar(c); 而lastc不是空格,輸出,此時lastc = c;第二次迴圈時c是空格,if(c == ' '){ if(lastc != ' ') putchar(c); c、lastc都是空格,故不輸出,滿足將連續的多個空格用一個空格代替。。

6樓:匿名使用者

這個沒那麼難理解吧。lastc = c;這條語句就是把當前輸入的字元賦給了lastc,迴圈繼續進行,c接受了新的輸入字元,若當前輸入的c為空格時,用lastc判斷上一個輸入字元是否為空格,若lastc為空格,則連續空格只輸出一個,否則輸出空格。最後,再把c的值賦給lastc,進入下一次迴圈。

不過話說lastc沒有初始化。

7樓:匿名使用者

你可以試試啊,比如你輸入ab,那麼c就是b,lastc就是a

一個關於c語言中++a的問題

8樓:砍侃看

(++a)+(++a)+(++a);

這種表示式的寫法是抄很不好的,因為bai其結果是未定義的,不同du的編譯zhi器得到的結果可能不一樣。所dao以不建議這樣寫,而且對其討論沒有意義,因為你也不知道會得到什麼答案。答案有可能是22,也有可能是24。

因為都沒有錯。

為什麼是22?

因為你的編譯器是這樣處理的,

首先,對a自增,a就是6

再對a自增,這時a就是7

然後相加,注意相加的不是6和7,而是7和7,因為a就是記憶體的一塊,不可能既是6又是7,這時結果是14

再對a自增,a就是8了,然後14+8=22。

在csdn上有個帖子是討論這個問題的,你可以找找。討論的結果就是,這種表示式沒有任何意義。

9樓:兄弟連教育北京總校

首先++a是在用a前就被加了,a++則是在整個語句結束之後之後加的

int a=2

“printf("%d,%d\n",a,++a);”為什麼是專3,3而不是2,3呢 printf是從後往前看引數的,++a,a=3,再屬執行輸出。

“printf("%d,%d\n",++a,a);”為什麼是3,2而不是3,3呢 同理,先看到a,則a=2,然後看到++a,a=3,輸入。

“printf("%d,%d\n",a,a++);”為什麼是2,2,而不是2,3 先看到a++,但++要再整個語句結束之後++,所以a 都輸出2

“printf("%d,%d\n",a++,a);”為社麼是2,2,而不是3,3 先看到a,再看到a++,但是要在語句結束之後加

關於C程式的小問題,關於C語言的小問題?

上邊的兩位都說的不錯了.是這樣的 scanf c di 使用者輸入y或是n c的注釋分兩種,一種是 這是單行注釋,也就是在一行中這個符號後邊的都會被編譯器識別為注釋內容而不被編譯.另一種是 這種的注釋沒有限制,不限於一行,可以多行中,它會從開始然後掃瞄到結束,這中間的都會被注釋掉.當然我相信你這些都...

關於c語言中的指標問題,關於c語言中的指標問題。

char p heir 這句話包含了2層意思,一是定義乙個指標變數p,即 char p 二是為指標變數p賦初值,即 p heir 實際是將存放字串 heir 的記憶體位址賦給p 因此這句話實際上等價於 char p p heir char p heir 這個表示定義字元指標變數p,並將存放字串 he...

關於c語言中關於C語言中和的用法

和 都是邏輯表示式裡常用的,一般用法是 if 表示式1 表示式2 或者 if 表示式1 表示式2 表示 或 滿足其中乙個,整個表示式就為真,就滿足if判定的條件 例如 if 1 0 std cout hello n 輸出為hello 表示 且 if括號內的表示式都為真 才能滿足if判定的條件 才會執...