0

我的程序有点问题。在我的 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;
}

变量 Xint X=0;在此函数中定义。它应该是一个从 1 到 9 的数字,但它不会通过代码改变它的值,即使我X++;在我的 for 循环之后也是如此。

当我将它改造成我想要的间隔或任何数字时,这段代码运行得很好if(pom[j]=='1') star++;if(pom[j]=='2') star++;所以我认为问题出在我的 if 语句语法中。有什么想法吗?感谢您的帮助。

4

1 回答 1

3

在您的if语句中,您将一个char(我假设 pom 是一个 char)与一个int进行比较。“1”的 ASCII 码是整数 49,而不是 1。你可以这样做:

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

另一种方法是声明:

char X = '0';

阅读ASCII 表

于 2013-04-07T23:23:29.830 回答