0

私は他のscanf投稿を調べましたが、この短いコードでここにある問題を見つけることができないようです。問題は、abまたはcを入力すると、ifまたはelse ifステートメントには進まないということです。修正方法がわからないので、助けがあれば素敵です。ありがとう!

#include <stdio.h>

int main(void)

{

char bogstav, a, b, c;

printf("Indtast a b eller c\n");
scanf("%c", &bogstav);

    if(bogstav == a)
    {
    printf("Du valgte a");
    }
        else if(bogstav == b)
        {
        printf("Du valgte b");
        }
            else if(bogstav == c)
            {
            printf("Du valgte c");
            }
                else
                {
                printf("Du valgte ikke a b eller c!");
                }
return 0;
}
4

5 に答える 5

1

変数、、を初期化する必要がaありbますc

于 2012-10-18T16:42:16.180 に答える
0

それらがリテラル文字であることを期待していますか?

if(bogstav == 'a')
于 2012-10-18T16:43:00.877 に答える
0

abおよびステートメントc内のif文字ではなく、初期化されていない変数です。あなたは'a'、などと比較したいです。またはchar a = 'a';...を実行しますが、それはおそらくやり過ぎです。

于 2012-10-18T16:43:09.520 に答える
0

コードの問題は、bogstavをc値ではなく、c文字の値と比較したいのですが、逆の方法で行っていることです:P

if(bogstav =='b')を実行して、bogstavがb文字と等しいかどうかを確認します。

#include <stdio.h>

int main(void)

{

char bogstav;

printf("Indtast a b eller c\n");
scanf("%c", &bogstav);

    if(bogstav == 'a')
    {
    printf("Du valgte a");
    }
        else if(bogstav == 'b')
        {
        printf("Du valgte b");
        }
            else if(bogstav == 'c')
            {
            printf("Du valgte c");
            }
                else
                {
                printf("Du valgte ikke a b eller c!");
                }
return 0;
}
于 2012-10-18T16:46:17.133 に答える
0

変数を宣言することでそれを行うことができる2つの方法

char a='a',b='b',c='c';

また

以下のような条件で変数チェックを直接宣言せずに

if(bogstav == 'a')
{ // do your stuff }
于 2012-10-18T16:46:43.763 に答える