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

你应该初始化你的变量abc

于 2012-10-18T16:42:16.180 回答
0

你期待那些是文字字符吗?

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

ab并且cif语句中不是字符,它们是变量,尚未初始化。你想比较'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

声明变量的两种方法

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

或者

没有在如下条件下直接声明变量检查

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