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...