尝试编写以下程序
所以这里
输入将为aaabbbccc
输出为abc
#include<stdio.h>
int main()
{
char arr[10]={'0'};
char ch;
printf("enter input characters: ");
for(int i=0;i<10;i++){
ch=getchar();
if(arr[i]=='0')//skips here even though the array element has'0'
//in it.
arr[i]=ch;
}
for(int i=0;i<10;i++){
if(arr[i]!='0')
printf("%c",arr[i]);
}
return 0;
}
最佳答案
与
char arr[10]={'0'};
您仅将第一个元素初始化为'0'
,所有其余元素都初始化为0
(即整数值零,不是字符'0'
)。这当然意味着,除了当 i == 0
时,条件 arr[i] == '0'
将为假。
如果您希望所有元素都是字符'0'
,那么您需要显式地将所有元素初始化为它。
关于c - == 运算符跳过条件 if 语句,即使条件为 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51582888/