递归函数找到素数因子

fud*_*din 0 c recursion

我做了一个递归函数来找到一个数字的素因子,但是它有一个让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)

IVl*_*lad 5

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)