了解scanf

时间:2012-10-18 16:40:33

标签: c scanf

我查看了其他的scanf帖子,但我似乎无法找到这里有这个短代码的问题。 问题是,当我输入b或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;
}

5 个答案:

答案 0 :(得分:1)

您应该初始化变量abc

答案 1 :(得分:0)

你期待那些是文字吗?

if(bogstav == 'a')

答案 2 :(得分:0)

a语句中的

bcif不是字符,它们是尚未初始化的变量。您想要与'a'等进行比较。或者char a = 'a'; ...,但这可能有点过头了。

答案 3 :(得分:0)

您的代码中的问题是您想要将bogstav与c字符的值进行比较,而不是c值的值,但是您正在以另一种方式进行比较:P

执行if(bogstav =='b')检查bogstav是否等于b characcter。

#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;
}

答案 4 :(得分:0)

你可以通过声明变量

来实现这两种方法
char a='a',b='b',c='c';

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

if(bogstav == 'a')
{ // do your stuff }