-1
#include <stdio.h>
int main(void)
{
    char fever, cough; /*Sets the chars.*/

    printf("Are you running a fever? (y/n)\n"); /*Asks if they have a fever and saves their input.*/
    scanf("%c",&fever);

    printf("Do you have a runny nose/cough? (y/n)\n"); /*Asks if they have a cough and saves their input.*/
    scanf(" %c",&cough);

    printf("Please verify the folling information.\nFever: %c \nRunny nose/cough: %c \n",fever,cough); /*Asks if the following info is correct.*/


    if ((fever=y) && (cough=y))
    printf("Your recommendation is to see a doctor.");

    else if ((fever=n) && (cough=y))
    printf("Your recommendation is to get some rest.");

    else if ((fever=y) && (cough=n)
    printf("Your recommendation is to see a doctor.");

    else
    printf("Your are healthy.");
return 0;
}

y と n でエラーが発生する

4

5 に答える 5

0

あなたのコードにはいくつかの誤りがあります。

I - 変数の熱と咳には文字データ型があるため、if 条件では、比較変数は 'y' & 'n' のように一重引用符で囲む必要があります。

II - if 条件で代入演算子「=」を使用しました。これは間違ったロジックです。比較演算子 '==' を使用する必要があります。

#include <stdio.h>
int main(void)
{
    char fever, cough; /*Sets the chars.*/

    printf("Are you running a fever? (y/n)\n"); /*Asks if they have a fever and saves their input.*/
    scanf("%c",&fever);

    printf("Do you have a runny nose/cough? (y/n)\n"); /*Asks if they have a cough and saves their input.*/
    scanf(" %c",&cough);

    printf("Please verify the folling information.\nFever: %c \nRunny nose/cough: %c \n",fever,cough); /*Asks if the following info is correct.*/


    if ((fever=='y') && (cough=='y'))
    printf("Your recommendation is to see a doctor.");

    else if ((fever=='n') && (cough=='y'))
    printf("Your recommendation is to get some rest.");

    else if ((fever=='y') && (cough=='n')
    printf("Your recommendation is to see a doctor.");

    else
    printf("Your are healthy.");
return 0;
}
于 2018-02-11T09:04:36.680 に答える
0

2 番目に入力を読み取るには、コードの両方の行のscanf前にスペースを入れる必要があります。%c scanf

このように見えscanf(" %c", &fever)scanf(" %c, &cough)その理由は、y または n の最初の入力の後に Enter キーを押すと、コンパイラがこれを入力自体として読み取るためです。これは scanf のトリッキーな部分だと言われました。

于 2018-02-11T07:15:24.260 に答える
-2

文字列を使用するときは、'character'(' ') を使用する文字には "string"(" ") を使用する必要があることを常に覚えておいてください。

Example,
char *s = "Hi i am fine"; //string
char *c = 'g'; //character

コードを適宜変更して、文字「y」と「n」をチェックします。

于 2013-10-01T07:16:59.560 に答える