if语句中无法识别的变量

时间:2013-04-07 23:15:20

标签: c

我的程序有点问题。在我的IF语句中,我的变量未被识别。

for(i=1;i<10;i++){
    printf("%d:", i);

        for(j=0;pom[j]!='\0';j++){
                if(pom[j]==X) star++;
        }
    X++;
    printf("%d", star);
    printf("\n");
    star=0;
}

变量X在此函数中定义为int X=0;。它应该是1到9之间的数字,但它不会在代码中改变它的值,即使我在for循环之后有X++;

当我将其重新编译为if(pom[j]=='1') star++;if(pom[j]=='2') star++;或我所需间隔的任何数字时,此代码运行良好,因此我认为问题出在我的if语句语法中。有什么想法吗?谢谢你的帮助。

1 个答案:

答案 0 :(得分:3)

if 语句中,您正在使用 int 比较 char (我假设pom是一个char)。ASCII码'1'是整数数字49,而不是1.您可以这样做:

if (pom[j] == (x + 48))

另一种方法是声明:

char X = '0';

阅读ASCII table