这是一个求质因数的小代码,但是输出的时候总是会多一个
#include<stdio.h>
int main()
{
int m,i=2,j=0,factor[20];
printf("请输入一个正整数\n");
scanf("%d",&m);
while(m>1) //求质因数,并将其储存到factor数组中
{
if(m%i==0)
{
factor[j]=i;
j++;
m=m/i;
}
else i++;
}
for(i=0;factor[i]!='\0';i++) //输出数组中所有质因数
{
printf("%d ",factor[i]);
}
}
运行结果应该是:2,2,5,5
但实际运行结果总是多一个数据,那个数据还是随机的:
factor[i]!='\0' 改成 i<j不就好了