「白富美」問題背後的C語言知識

2021-09-23 10:43:45 字數 1484 閱讀 8567

二、正確方法

三、總結

「白富美」其實很簡單,就是三組printf()和scanf()組成的輸入輸出,以及if判斷,最終輸出的是「你是白富美!」或者「你不是白富美!」

1.錯誤**

1 #include

2 #include

3 int main()

4

錯誤運算結果:

2.錯誤原因

上面這段**的問題,主要在於沒有給定義的指標變數分配記憶體空間,導致scanf()函式無法完成輸入操作。雖然在定義指標變數時給指標變數賦值null,但實際上null表示0,是個空位址。所以,scanf()函式檢測到空位址後,就停止執行其輸入操作了。

發現了問題後,我用python和c兩種語言寫了**,不得不說,python的**是真的簡單,而且不需要考慮一些底層的問題。

1.python**

1 color =

input

("你白嗎?"

)2 money =

int(

input

("請輸入你的財產總額:"))

3 beautiful =

input

("你美嗎?")4

print()

5if color ==

"白" and money >

1000 and beautiful ==

"美":

6print

("你是白富美!")7

else:8

print

("你不是白富美!"

)

python運算結果:

你白嗎?白

請輸入你的財產總額:1001

你美嗎?美

你是白富美!

2.c**
1 #include

2 #include

3 int main()

4

3.c**
1 #include

2 #include

3 #include

4 int main()

5

運算結果:

你白嗎?白

請輸入你的財產總額:102

你美嗎?美

你是白富美!

1.由於我的能力有限,所在在使用c語言的指標時出錯,導致整個程式無法正確執行。

2.在使用scanf()函式時,一定要注意規範。

3.比如輸入語句:scanf("%s %c %d", str,&c,&a);,正確的輸入方式是:我來了! r 10,即兩兩之間用空格隔開,因為 scanf()語句裡面兩兩之間就是用空格隔開的,當然也可以換成逗號隔開,對應的輸入時也要用逗號隔開。

白富美看過來,你想要的都在這裡!

我是高帥富的代表 金牛座 浩瀚的星空就好像中企動力龐大的設計資源網路雲儲,集合全國1200位資深設計師如鑽閃耀的智慧型與才華,遼闊無垠,充滿無限想象。掌管每個宮位的星座神主都能在其中找到適合自己的 設計元件。第五期,我們就來聊聊金牛座 4月20日 5月20日 金牛在黃道十二宮裡代表金錢,古代農夫播種...

C語言的知識點

1 唯讀變數 2 自增自減操作符 i i的值立刻改變,返回值為該變數的值 i 返回變數的值,而變數的值直到整個表示式求值完畢後才進行累加。3 聯合體 union my union 聯合體各個成員的儲存空間相互重疊,都從同乙個記憶體位址開始。初始化時,聯合體變數被認為只有乙個成員。使用聯合體的目的 節...

c 的基本語言知識(二)

1 運算子 c 包含了c語言的所有運算子,並且在其基礎上增加了一下幾種新的運算子 1 作用域運算子 2 new 動態分配記憶體單元運算子 3 delete 刪除動態分配記憶體單元運算子 4 和 成員指標選擇運算子 需要注意的是,不同的運算子制定運算元的個數並不相同 2 雙目運算子 數 算符 3 三目...