c語言問題,幫我看看哪錯了

2021-05-04 18:24:48 字數 595 閱讀 4739

1樓:匿名使用者

'\n'會被gets當作輸入結束符,但不會被gets接收,還有就是gets函式會在輸入字串後加上'\0',以確定字串的結束位置,所以:

#include

int main(void)

i = i + 1;

}printf("%d\n", m);

return 0;}

2樓:apple林

你錯誤的原因是沒用清楚字串的結束符不是'\n',而是'\0',每一字串的尾部,會自動加上一個'\0'來表示字串的結束。

所以你要使用while(a[i]!='\0') 這樣子就可以了。

3樓:匿名使用者

**沒看出什麼問題,請把那個編譯報什麼錯貼出來吧,或者執行結果不對。

4樓:匿名使用者

char*gets(char*buffer);功能:從stdio流中讀取字串,直至接受到換行符或eof時停止

所以a[i]!='\n' 一直為true, 導致i=i+1一直**, 最終溢位.

只要改為 while(a[i]!='\0') 就可以了.

進來看看這段C語言程式哪錯了,C語言程式 進來看看

你的程式達不到你要求的目的,只是帶著陣列裡的元素跑了一圈而已,輸出結果應該和你輸入時的次序一樣。既然是從小到大排列,那肯定得有大小的比較,而在你的fun 函式裡只有數值的交換,而沒有大小的比較。建議修改你的fun 函式以實現你所說的排序功能。這個就是 t fan x 這個函式沒有返回值,不用int型...

c語言程式不知道哪錯了求解,一個C語言程式不知道哪錯了求解

include include int main 你想開方嗎?將c squrt a a b b 改為 c sqrt a a b b 試試 c squrt a a b b 這句中的函式名寫錯了。求平方根的函式應該是sqr吧。3 squrt undeclared identifier。單詞寫錯啦。多了個...

C語言哪裡錯了

首先 程式看不懂 但是語法上有下列幾點錯誤 include void main 定義為空返回值主函式 但是後面有返回值 應該為int main printf n 這裡 n用中文的雙引號括了起來 應用英文的 改為 n return 0 結尾用了中文的分號 應該為英文的 修改後的程式如下 include...