我的程序有点问题。在我的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语句语法中。有什么想法吗?谢谢你的帮助。
答案 0 :(得分:3)
在 if 语句中,您正在使用 int 比较 char (我假设pom是一个char)。ASCII码'1'是整数数字49,而不是1.您可以这样做:
if (pom[j] == (x + 48))
另一种方法是声明:
char X = '0';