你写的程序对每一个数组元素,都那之外的每个元素进行了除运算,因此重复的输出也是不可避免的
其实这个题目也很简单的,你的目的:只要出现一个整除的元素,那么内循环你让它停止即可,这样做就没问题了
main()
{int a[20];
int i=0,j=0;
clrscr();
printf("please input a:\n");
for(i=0;i<20;i++)
scanf("%d",&a[i]);
for(i=0;i<20;i++)
{
for(j=0;j<20;j++)
if(a[j]%a[i]==0 && i!=j) break;
printf("a[%d]=%d\n",i,a[i]);
}
getch();
}
不过上面写出的也只是雏形,因为马上宿舍熄灯了,所以只能那么写,你写的时候可以使之更为完善