函数应该有原型错误

Har*_*nan 0 c turbo-c

我写了以下C程序:

#include<stdio.h>
 #include<stdlib.h>
 void main()
 {
    int count;
    scanf("%d",&count);
    if(count < 1 || count > 100)
    {
        exit(1);
    }
    int inputs[10];
    for(int i = 0; i < count; i++)
    {
        scanf("%d",&inputs[i]);
        if(inputs[i] < 1 || inputs[i] > 30000)
        {
            exit(1);
        }
    }
    for(i = 0; i < count; i++)
    {
        printPrimeFactor(inputs[i], 2);
        printf("\n");
    }
 }

 void printPrimeFactor(int number, int factor)
 {
    if(number % factor == 0)
    {
        int flag = 1, newNumber;
        newNumber = number;
        for(int i = 0; i < factor/2; i++)
        {
            if(factor % i == 0)
            {
                flag = 0;
                break;
            }
        }
        if (flag)
        {
            printf("%d ", factor);
            newNumber = number / factor;
        }
        factor++;
        if(factor <= newNumber / factor)
        {
            printPrimeFactor(newNumber, factor);
        }
    }
 }
Run Code Online (Sandbox Code Playgroud)

在编译时(在windows中,turbo C),我一直在收到错误:

Function 'printPrimeFactor' should have a prototype error
Run Code Online (Sandbox Code Playgroud)

我发现代码没有任何问题.可能是什么问题?

Dab*_*ler 5

在编译器看到它的定义之前调用你的函数,因此编译器会说"我想首先看到这个函数的原型".

这意味着你void printPrimeFactor(int number, int factor);在函数调用之前放置.

或者,您可以在调用之前放置整个函数(即其定义).