-
該問題的要求是一次讀取多行,輸入EOF完成後,一次輸出多行。
您的 ** 是處理和輸出讀取的每一行。
每一行都應讀入 2D 字元陣列,然後統一輸出。
#include
#include
int main()
int i, j, s, l = 0;
char a[85][100];
while (gets(a[l]) = null)s = strlen(a[l]);
for (i = 0; i < s; i++)if (a[l][i] == ' ')
for (j = i; j < s; j++)a[l][j] = a[l][j+1];
s--;i--;
l++;for (i = 0; i < l; i++)puts(a[i]);
return 0;
編譯通過,結果如下:
hello world
nice to see you
上面的 ab x 是輸入,下面是輸出)。
helloworld
nicetoseeyou
Abx希望,謝謝
-
請嘗試此功能。
#include
#include
int main()
int i, j, s;
char a[5];
while (gets_s(a) != null)s = strlen(a);
for (i = 0; i < s;)
if (a[i] == ' ')
for (j = i; j < s; j++)a[j] = a[j + 1];
s--;i--;
puts(a);
i++;return 0;
-
A 是乙個無符號整數,最大值是 65535,是 0xffff,二進位是11111111,但是當你加 1 時,也就是當它應該是 65536 時,A 溢位,應該是0x10000,但 A 只有 2 個位元組大小,系統只能識別為 0x0000,就變成了 0, 不知道你能不能理解。
-
主要功能。
main()
因為 a 是無符號段整形的變數。
b 是有符號整數的變數。
您可以檢視不同整形變數的值範圍。
只是得到它。 事實上,這是整形手術的氾濫。
-
讓我向你解釋一下:
#include
main()
為什麼結果為零?
其實很簡單:
事情是這樣的:有符號變數的值範圍是 -32678 32767,無符號變數的值範圍是 0 65535
而你這裡的變數是 65536,所以資料溢位了,int 是兩個位元組,16 位,那麼在記憶體中它變成了 10000000000000000000000,1 會放到下乙個位元組,表示 int 的位元組會變成全零,所以結果是全零。
很榮幸為您答疑解惑,祝您生活幸福美滿
-
看起來還不錯,怎麼了? 只是輸入是輸入 1 空格 2 才能正確顯示程式。
-
輸出語句有問題:%c 更改為 %s
呵呵,這個哥哥和我幾個月前的樣子很像。 在學習 C 之前,我認為 C 應該能夠實現任何事情。 但是在學習之後,我發現我離Windows還很遠。 >>>More