小编Pro*_*mer的帖子

这个C代码有什么问题?

这是我试图编译的代码

#include <stdio.h>

int main(void)
{
   int n;
   printf("Enter the value for the nuber to be tested\n");
   scanf("%d", &n);
   if(n <=10 && >= 1)
       printf("n is between 1 to 10\n");
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

因此,当我编译它时,它会在行显示错误 if(n <=10 && >= 1)

c output

0
推荐指数
1
解决办法
86
查看次数

这个C代码是如何工作的?

以下C代码在我的测试书中给出,它告诉我们输入的数字是否重复了一个数字

#include <stdio.h>
#include <stdbool.h>

int main()
{
bool digit_seen[10] = {false};
int digit;
long n;

printf("Enter a number: ");
scanf("%ld", &n);

while (n > 0 ) {
    digit = n%10;
    if (digit_seen[digit])
        break;
    digit_seen[digit] = true;
    n /= 10;
}
if (n>0)
    printf("Repeated digit\n");
else
    printf("No repeated dgit\n");

return 0;
}
Run Code Online (Sandbox Code Playgroud)

问题是,我无法弄清楚这是如何工作的.据我所知,它只是通过digit = n%10计算余数而没有别的.

任何人都可以告诉我它是如何工作的

谢谢阿卡什

编辑:好的我编辑了这部分代码到以下

if (n>0)
    printf("Repeated digit: %d\n", digit);
else
    printf("No repeated dgit\n");
Run Code Online (Sandbox Code Playgroud)

所以现在它还打印正在重复的数字,但我得到了非常奇怪的问题.

如果我输入一个长于10个数字的数字,它会输出错误的输出,或打印出没有数字重复的数字.

我认为这可能是数组digit_seen [10] = {false}的问题所以我将它的长度增加到20但是我也遇到了同样的问题,任何人都可以解释为什么会发生这种情况

谢谢阿卡什

c

0
推荐指数
1
解决办法
243
查看次数

标签 统计

c ×2

output ×1