这是我试图编译的代码
#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代码在我的测试书中给出,它告诉我们输入的数字是否重复了一个数字
#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但是我也遇到了同样的问题,任何人都可以解释为什么会发生这种情况
谢谢阿卡什