#include
int fun(int n,int a[100]);
int isprime(int numble);
int isprime(int numble)
{
int i=0;
int flag=0;
for(i=2;iif(numble%i==0)
{
flag=1;
}
}
return flag;
}
int fun(int n,int a[100])
{
int i=0;
int j=0;
for(i=2;iwhile(n%i==0)
{
for(j=0;jn=0;
int c=0;
int b[100]={0};
scanf("%d",&n);
if(isprime(n))
{
fun(n,b[100]);
printf("%d=%d",n,b[0]);
int i=2;
while(b[i]!='\0')
{
printf("*%d",b[i]);
i++;
}
}
else
{printf("It is a prime number");}
}
想知道这个质因数分解为什么错了
fun(n,b);调用fun函数,传递的是b,不是b[100]
在定义数组的时候 int b[100]表示100个整型的数组,而使用数组时如果写b[100],则表示b数组的第100个元素。但b数组的下标范围是0到99,所以b[100]是越界访问,因此是错误的