回复 12# 的帖子
1、m沒有初値,而count執行條件是 if (m==0) 所以 不能保證運行。
2、當發現有相同數字時,把m置為1的同時還應當中止檢測,否則當下一數字不同時m又被置0了。
這是根據你的意思改的,對照一下吧:
/**********************************************/
#include<stdio.h>
//引用
int c[10];
int b;
void count(int a)
{
int i, j, m = 0;
//初値
if (a > b)
{
for (i = 1; i <= b; i++) printf("%d", c[i]);
printf("\n");
}
else
{
for (i = 1; i <= b; i++)
{
for (j = 1; j < a; j++)
{
if (i != c [j ] )
m = 0;
else
{
m= 1;
break;
//跳出循環
}
}
if (m == 0)
{
c [a ] = i ;
count(a + 1);
}
}
}
}
int main()
{
printf("Input a number(N<10):");
scanf("%d", &b);
count(1);
return 0;
}