这对我来说有点困惑,但我得看看我在x中出现了多少次。
所以如果有人输入3代表i,x是4294967295,那么应该是0次,但是如果有人输入9代表i,4294967295代表x,应该是3次。
这就是我所拥有的,但是输出是0加9,所以它不起作用。。
int main(int argc, char** argv) {
unsigned int i;
scanf("%u", &i);
unsigned int x;
scanf("%u", &x);
int output = 0;
int t = 0;
while (t < 10) {
x /= 10;
if (i == x) {
output++;
}
t++;
}
printf("%d", output);
}
最佳答案
int main(int argc, char** argv) {
unsigned int i;
scanf("%u", &i);
if(i > 9) { // check it's a single digit
printf("expecting a single digit\n");
return 1; // to indicate failure
}
unsigned int x;
scanf("%u", &x);
int output = 0; // initialized output, removed t (use x directly instead)
if(x == 0) { // special case if x is 0
if(i == 0) {
output = 1;
}
} else {
while(x > 0) { // while there is at least a digit
if(i == (x % 10)) { // compare to last digit
output++;
}
x /= 10; // remove the last digit
}
}
printf("%d\n", output); // added \n to be sure it's displayed correctly
return 0; // to indicate success
}
另外,我建议使用更明确的变量名,比如
digit
和number
,而不是x
和i
。关于c - 我在x中发生了多少次(无符号32位int C),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22479887/