求大神,C语言,为什么运行到while(a[i]!=0){printf("%d ",a[i]);i++;} a[i]的值会变得莫名其妙,
#include<stdio.h>#include<stdlib.h>int*xunzhao(intm){inti,j=0;intq[10]={0};//printf("...
#include <stdio.h>
#include <stdlib.h>
int* xunzhao(int m)
{
int i,j=0;
int q[10]={0};//printf("%d",q[9]);
for(i=2;i<=m;i++)
{
while(m%i==0)
{
m=m/i;
printf("%d*",i);
q[j]=i;//printf("%d/",q[j]);
j++;
}
}
q[j]=0;
return q;
}
int main()
{
int m,n,i=0,j=0;
int d[10],u[10];
int*a=d;
int*b=u;
scanf("%d,%d",&m,&n);
a=xunzhao(m);
//printf("%d",*a);
while(a[i]!=0){printf("%d ",a[i]);i++;}
printf("\n");
b=xunzhao(n);
while(b[j]!=0)printf("%d ",b[j]);
system("pause");
return 0;
} 展开
#include <stdlib.h>
int* xunzhao(int m)
{
int i,j=0;
int q[10]={0};//printf("%d",q[9]);
for(i=2;i<=m;i++)
{
while(m%i==0)
{
m=m/i;
printf("%d*",i);
q[j]=i;//printf("%d/",q[j]);
j++;
}
}
q[j]=0;
return q;
}
int main()
{
int m,n,i=0,j=0;
int d[10],u[10];
int*a=d;
int*b=u;
scanf("%d,%d",&m,&n);
a=xunzhao(m);
//printf("%d",*a);
while(a[i]!=0){printf("%d ",a[i]);i++;}
printf("\n");
b=xunzhao(n);
while(b[j]!=0)printf("%d ",b[j]);
system("pause");
return 0;
} 展开
2个回答
2014-03-14
展开全部
代码做什么的。
追问
一个基于质数分解求最大公约数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询