promotion image of download ymail app
Promoted
阿俗 發問時間: 電腦與網際網路程式設計 · 1 0 年前

c++ 初學者疑問

#include <stdio.h>

#include <stdlib.h>

int main()

{ int y;

int n;

printf("Are you a handsome girl:");

scanf("%c", &y);

scanf("%c", &n);

printf("You are smart and beautiful.\n",y);

printf("You tell a lie.I will punish you.\n",n);

system("PAUSE");

return 0;

}

我是初學者 我想知道

我的程式 如果輸入y 我只想要跑y的答案

我現在這樣 不管輸入y或n

兩個答案都出現

請問大大們 要怎麼修改

已更新項目:

阿~~~ 我發現 我不管是輸入y或n或是其他英文單字

兩個答案都會跑出來~"~

1 個解答

評分
  • 1 0 年前
    最佳解答

    #include <stdio.h>

    #include <stdlib.h>

    int main(){

    int type;

    printf("Are you a handsome girl/boy= =?");

    scanf("%c", &type);

    if(type=='Y'||type=='y')

    {

    printf("You are smart and beautiful.\n");

    }

    //如果輸入大寫或小寫Y,則印出You are smart and beautiful.

    else if(type=='N'||type=='n')

    {

    printf("You tell a lie.I will punish you.\n");

    }

    //如果輸入大寫或小寫N,則印出You tell a lie.I will punish you.

    else if(type!='N'&&type!='n'&&type!='Y'&&type!='y')

    {

    printf("Don't kidding me.\n");

    }

    //如果輸入非N非Y,則印出Don't kidding me.

    system("PAUSE");

    return 0;

    }

    解說:

    1.你的程式碼當中並無可以判斷你所輸入的字元,如此一來,程式只會將所有的敘述句不斷的往下執行,並不會有任何判斷的動作。故此我將你的程式碼將入了判斷式,可以辨別各種不同的情況,詳細於程式碼後面註解。

    2.程式碼中判斷式(if/else)用法為:

    a.

    if(條件)

    {

    敘述句;

    }

    b.

    if(條件)

    {

    敘述句1;

    }

    else

    {

    敘述句2;

    }

    //若符合條件,則執行敘述句1;若不符合條件,則執行敘述句2。

    c.

    if(條件1)

    {

    敘述句1;

    }

    else if(條件2)

    {

    敘述句2;

    }

    else if(條件3)

    {

    敘述句3;

    }

    ....

    //若符合條件1,則執行敘述句1;若符合條件2,則執行敘述句2;若符合條件3,則執行敘述句3....。

    3.Are you a handsome girl^^?

    2007-03-20 23:17:18 補充:

    第四行的int type;應當修正為->char type;才是正確的型態。

    直接複製過來修改沒看到,不過程式可以正常判斷是因為,

    程式將輸入的字元自動轉為ASCII Code,所以仍然可以正常判斷。

    變數型態宣告很重要,要輸入字元,必須宣告字元型態變數(char)。請小心...

    • Commenter avatar登入以對解答發表意見
還有問題?馬上發問,尋求解答。