我做了一个递归函数来找到一个数字的素因子,但是它有一个让turbo c退出的错误.请帮忙
#include<stdio.h>
#include<conio.h>
int prime(int num);
int primefactor(int num,int i);
void main(void)
{
int num;
printf("Enter a number whose prime factors are to be calculated:");
scanf("%d",&num);
primefactor(num,i);
i=num
getch();
}
int primefactor(int num,int i)
{
if(i==2)
return 1;
if(num%i==0)
{
if(prime(num))
{
printf(",%d",num);
num=num/i;
i++;
}
}
i--;
primefactor(num,i);
return 0;
}
int prime(int num)
{
int i,flag;
for(i=2;i<num;i++)
{
if(num%i==0)
flag=0;
}
return flag;
}
Run Code Online (Sandbox Code Playgroud)
void main(void)
{
int num,i=num; // (*)
printf("Enter a number whose prime factors are to be calculated:");
scanf("%d",&num);
primefactor(num,i);
getch();
}
Run Code Online (Sandbox Code Playgroud)
你认为它i有什么价值(*)?
不确定你想要的i是什么,但我很确定你不希望它是随机的.如果您希望它以值的值开头,则num需要num在阅读后分配给它:
void main(void)
{
int num,i;
printf("Enter a number whose prime factors are to be calculated:");
scanf("%d",&num);
i = num; // assignment goes here.
primefactor(num,i);
getch();
}
Run Code Online (Sandbox Code Playgroud)