C語言這個程式有點不理解,麻煩幫忙看一下,謝謝

2021-03-19 18:28:37 字數 1711 閱讀 5841

1樓:天然浮誇

這個函式是一個字元一個字元判斷的

所以前面的abcdefg都列印出來了,但是當判斷到'#'的時候while裡面條件不滿足,所以跳出了迴圈,程式就結束了

2樓:ai看雪

getchar()每次只在緩衝區讀取一個字元,雖然你一次輸入了那麼多,但是getchar()並不會全部讀完,如果 '#' 放在第一個字元,應該是可以輸出的

3樓:匿名使用者

輸入#號就退出while迴圈了

c語言合法識別符號的問題,我寫的程式為什麼不對啊,麻煩幫忙看一下,謝謝,我找不出錯誤,但是執行不對。

4樓:略懂c語言

判斷語句是if (p==st-1)而不是st-2,另外p值應該在每次迴圈開始時重置為0,不然會一直自增。沒幫你除錯,不知道還有沒有其他問題,你先按上面兩點改改。

樓下好眼力,竟然能看到p是個指標。。。。

5樓:匿名使用者

p++; 有錯。這個指標根本就沒有初始化。

根據你的題意,也用不著它。給你如下**:

if((a[i]>='a'&&a[i]<='z')||(a[i]>='0'&&a[i]<='9')||(a[i]>='a'&&a[i]<='z')||a[i]=='_')

else

break;

.....

if(i ==st+1)

printf("yes\n");

else

printf("no\n");

按照上面的**修改後,再試試吧。

c語言問題,這個程式看不明白,誰能解釋一下 謝謝

6樓:聽聽—那冷雨

就一個遞迴呼叫呀。

就是返回的是c的值 一直遞迴到最裡層 c = 10也就是age(0)返回值是10 然後是age(0)+2 返回12 就是age(1)的返回值以此類推

age 5

c = age 4 +2

c = age 3 +2

c = age 2 +2

c = age 1 +2

c= 10

然後再返回c的值 由下向上累加

c = 10

c = 12

c = 14

c = 16

c = 18

c = 20

7樓:匿名使用者

age(n) //定義了一個age()函式,用了遞迴的方法

int n; //定義了一個整形變數n

main()

8樓:

#include

int age(int n)

/*int n;*/

void main()

這個就是一直呼叫

age()函式知道n==1

前面呼叫了四次 就是4x2+10(n==1時c的值,就是18)f(n)=10+(n-1)*2

9樓:匿名使用者

這是一個遞迴程式,就是求10+2+2+2+...+=10+2(n-1)的值

例如,如果n=5,那麼結果c=age(4)+2=(age(3)+2)+2=(age(2)+2)+2+2=(age(1)+2)+2+2+2=(10+2)+2+2+2=10+4*2=18

c語言這個地方有點不理解請幫幫忙吧謝謝

printf s n chars 會輸出陣列首地址開頭的字母,直到遇到 0 但該陣列的第五個字母 o 後面 就是0,所以只輸出hello 如果把10改成5,則會輸出hello等更多字母,直到遇到 0 或者訪問了系統的內 存,造成段錯誤 printf d n chars 輸出該一維陣列的首地址prin...

麻煩幫我看一下我的c語言找鞍點程式

額,我是樓上的281754179。還是第一次發現回答修改有上限的,orz。為方便樓主檢視,就用另一個號回答吧 已幫你找出錯了,正在幫你優化優化 等等哈 改錯 用註釋標出來的 include void main 你的演算法只能找出陣列中一個鞍點,例如對於全部元素相等的陣列也只能輸出第一個鞍點,對於這個...

c語言大家幫忙看一下這個程式哪出問題了

1全部第一個 scanf 函式 中的 格式控制中 你打 空格了所以 你確認 你輸入的 時候 有沒有打空格。一般格式符 必須一致第二個 你 的 判斷 不對,你想一想 如果 a是最小的 數 怎麼辦?根本 沒有 判斷。直接輸出了 判斷的邏輯有一點問題,不清晰。可以使用一下 include int main...