c語言為什麼我輸出2o的時候出現的不是空格

2021-07-04 15:47:07 字數 4368 閱讀 2180

1樓:匿名使用者

\x20 就是ascii碼十六進位制為20的字元,即十進位制32,正好是空格

但是你打了\x2o

後面的0 寫成o了

所以它輸出的是\x2 就是ascii碼為2的字元,就是那個笑臉

c語言問題,為什麼輸出全是笑臉

2樓:鎖玉英陸衣

高精度儲存大數時應該用int型,否則按字元輸出(具體看下ascii編碼)

如需要修改程式,追問一下

3樓:匿名使用者

把「while(a[n]=getchar()!='\n') 」一句中的 「a[n]=getchar()」用括號括起來,改為:while((a[n]=getchar())!='\n')

4樓:匿名使用者

運算子優先順序的問題 while(a[n]=getchar()!='\n') 語句中!=優先運算 其值為1 char a[n]=1 為笑臉 如果是int 則是1了

5樓:匿名使用者

運算子的優先順序

bai沒有弄清楚

邏輯du運zhi算符的dao優先順序比賦值運算子的專優先順序要高!屬所以你的while是先判斷getchar!='\n' 這個只要成立就為1

所以賦值的時候總是將1賦值給你的陣列裡了

而輸出的時候ascii為1的字元就是你看到的那個笑臉!

改:#include

main()

6樓:匿名使用者

while(a[n]=getchar()!='\n')中的a[n]=getchar()!='\n'相當於a[n]=(getchar()!='\n')所以a[n]=1;

ascii碼為1的是笑臉

所以輸出全是笑臉

7樓:匿名使用者

看看是不是陣列的問題。

c語言求解釋為什麼我執行下列**的時候會出現一堆亂碼 還有為什麼空格鍵會變成一個笑臉的符號

8樓:

cmd把你輸出的ascii碼以gbk編碼輸出了

在cmd裡面使用mode con cp select=437將cmd**頁設定為ms-dos(英語)後再執行編譯好的執行檔案就可以解決

c語言輸出一個菱形圖案(有程式)

9樓:惲長征百燕

i表示行號,打

一行i就加1

j表示某一行需要列印空格的數目

k表示某一行需要列印『*』的數目

這個程式打了一個7行的菱形,我把程式改一下,把i,j,k的計數都從1開始,看起來會比較直觀

#include

void

main()

for(i=1;i<=3;i++)

//然後列印後面三行,行號從1開始計算}

10樓:匿名使用者

菱形,就是如下所示的圖形,總行數與總列數相等:

寫一個程式,根據使用者輸入的總行數,列印出菱形。

這個題目主要是找出規律,考察讀者的邏輯思維。

你可以從第一行開始,遍歷所有的列,也可以從第一列開始,遍歷所有的行。

下面的程式從第一行開始,遍歷所有的列。

設菱形的總行數為line,總列數為column,當前行為i,當前列為j。上半部分與下半部分的規律不一樣,應該分開討論。

我們著眼於星號(*),思考什麼條件下輸出星號,總結出如下的規律。

1) 對於上半部分(包括中間一行),當前行與當前列滿足如下關係輸出星號:

j>=(column+1)/2-(i-1)     (column+1)/2-(i-1)為第i行最左邊的星號

j<=(column+1)/2+(i-1)    (column+1)/2+(i-1)為第i行最右邊的星號

2) 對於下半部分,當前行與當前列滿足如下關係輸出星號:

j>=(column+1)/2-(line-i)     (column+1)/2-(line-i)為第i行最左邊的星號

j<=(column+1)/2+(line-i)    (column+1)/2+(line-i)為第i行最右邊的星號

不滿足上述條件,則輸出空格。

於是寫出如下的**:純文字複製

#include #include int main()column = line;  // 總行數和總列數相同for(i=1; i<=line; i++)else}}elseelse}}printf("\n");}return 0;}

執行結果:請輸入菱形的行數(奇數):11

****

*****

*******

*********

***********

*********

*******

*****

****

11樓:edward司徒文德

用得著6個for迴圈碼?

//列印稜形字母

//注意abs(i)+abs(j)<=k

//用數學的角度分析(假設k為2)

//|x|+|y|<=k

//y<=  2 - x

//y<=  x + 2

//y>= -x - 2

//y>=  x - 2

#include

#include

int main(void)

return 0;

}不懂追問我

學過數學,自己畫個圖你就明白了

12樓:

//#include "stdafx.h"//vc++6.0加上這一行.#include "stdio.h"

void main(void)}

13樓:匿名使用者

這其實可以更簡便的

#include"stdio.h"

#include"math.h"

void main()}

14樓:

你自己畫一個4*4的**(四分之一菱形),按照迴圈畫出菱形圖案你就知道了。k和j都受到i的影響,決定了當前行畫幾個*和空格,i可以理解為行號! 手打

15樓:抬頭望那蒼穹

ijk都是控制迴圈次數的變數

這個程式就是控制在什麼地方顯示*號組成一個菱形

16樓:匿名使用者

上面畫一個三角,下面畫一個反三角。就是菱形了這裡的高度指的是三角行的高度

#include "stdio.h"

void main()

for(int b=1;b<=(i*2-1);b++)printf("\n");

}for(int j=h-1;j>=1;j--)for(int b=1;b<=(j*2-1);b++)printf("\n"); } }

17樓:匿名使用者

#include

void main()

for(i=n-1;i>0;i--)}

18樓:匿名使用者

#include

int main(void)

printf("\n");

}getch();

return 0;}

19樓:手機使用者

#include

void main()

printf("\n");

}for (i = 3; i > 0; i--)printf("\n");}}

console.read();

20樓:匿名使用者

#include

int abs(int a)

int main()

return 0;}

21樓:匿名使用者

void main()

printf("\n");

}getchar();}

22樓:晴川初現

迴圈中巢狀的一個賦值變數

23樓:女王

i控制行數,j控制一行列印的空格數,k代表列印的*的個數

c語言轉義字元'\0'和空格輸出效果一樣,為什麼? 20

24樓:匿名使用者

0對應空字元,所以putchar('\0')輸出的就是啥都沒有,看起來跟輸出空格一樣,但其實還是有區別的,空格是有寬度的但是'\0'是沒有的

25樓:不經意拯救世界

'\0' 是字串的結束符,任何字串之後都會自動加上'\0'。所以你加上這個和加個空格 視覺效果一樣的

以下這段C語言的輸出的結果為?為什麼

結果 include main case 0 switch c 5 外層switch順序執行到這裡,c 5,所以這條bool表示式的結果為1 default printf 外層switch順序執行到這裡,不管怎樣都會執行default,因為前面的case都沒有break語句。這裡會輸出 printf...

c語言問題,為什麼無論輸入什麼結果輸出的X1 0,X

這樣du改 include include void main else printf 此一元二次方程的解為虛根 x1 b sqrt d 2 a x2 b sqrt d 2 a 中 b應該是來 自 1 b 然後把printf 此一元二次方程 的解為 nx1 lf,x2 lf x1,x2 中的 去了而...

c語言中的一道題求程式的輸出結果為什麼我求出來是

你的情況是 來 while n 1 中是先取n值判斷源後再n 因此第一次n 0判斷有效,n變為1並執行迴圈體 第二次n 1判斷仍有效,n變為2並執行迴圈體,第三次n 2判斷無效,n 被忽略。但實踐中由於編譯器的實現不同,可能導致第三次半段無效時n 未被忽略 理論上是不應該忽略的。所以給的答案是1 2...