我查看了其他的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;
}
答案 0 :(得分:1)
您应该初始化变量a
,b
和c
。
答案 1 :(得分:0)
你期待那些是文字吗?
if(bogstav == 'a')
答案 2 :(得分:0)
a
语句中的 b
,c
和if
不是字符,它们是尚未初始化的变量。您想要与'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 }