聪明反比聪明误短语:帮忙改一下C程序里的错

来源:百度文库 编辑:高考问答 时间:2024/04/25 02:54:39
任给一个正整数N,打印出其所有的因子。如12的因子有: 1,2,3,4,6,12
下面标有/*$ERROR2$*/的句子里有错,请改正
main()
{
int i,max,a[10];
printf("input 10 number:\n");
i=0;
while(i<=10) /*$ERROR1$*/
{scanf("%d",a[i]); /*$ERROR2$*/
i++;}
max=a[0];
for(i=1;i<10;i++)
if (a[i]>a[0]) /*$ERROR3$*/
max=a[i];
printf("max num=%d\n",max);
}

你的程序跟要求明显不一致啊,这是怎么回事呢,有错误很明显的了!
我一看怎么会有数组呢?求因子会用到数组吗?因子的个数是不一定的啊!
你看我写的!
#include<stdio.h>
void main()
{ int i,t,n;
printf("Please enter your number:\n");
scanf("%d",&n);
printf("1");
for(i=2,t=n/2;i<=t;i++)
if(n%i==0) printf(",%d",i);
printf(",%d",n);
getch();
}

两处错误:
1、while语句不能有等号
2、scanf语句中的a[i]改为:&a[i]

你在考我们唆,晕死。
1、 i的初值为0,所以i不能为10,只能到9才能使数组a[10]正确。
2、scanf()中是要在变量前使用&。
3、你这道题是求一个正整数的因子,怎么变成求下个数的最大值了,我晕死你。