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語言為什麼輸出的是7 0啊,C語言 7 0,為什麼
字元 hex dec 0 0x00 0 從數值上說上面三個是相等的 0 0x30 48 請lz注意他們的區別 你可以這樣理解strlen 函式的實現 int strlen char str 定義的x是字元型陣列名,但在c語言中字元型變數可以被賦予整形資料,字串裡遇到結束符0 0 就會結束,不管後面是...
看這個c語言程式。為什麼輸出的都是
你這個程式寫的很亂,首先各個變數沒有定義型別,n,m,sum r i 其次pow要用到include 演算法也不清楚你到底想幹什麼,另外scanf c n eof 這個是錯誤的。eof只有在讀檔案的時候這麼寫。 金色潛鳥 是否漏了標頭檔案 include 你的 pow 2,i 需要 math.hn ...
c語言以下程式的輸出結果是a為什麼
輸出結果是字元z 位元組是20是因為 10 定義了你為x資料組準備了10個位子,沒個位子可以存放乙個資料 佔2節 10 2 20 位元組 printf c 由於沒有輸出列表所以c編譯器不知道是列印哪個變數裡的值 他產生的當然是個隨機數.假定int型別變數占用兩個位元組,其有定義 int x 10 則...