我寫了下面的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);
}
}
}
而且在編譯(在Windows中,渦輪C),我保持收到錯誤:
Function 'printPrimeFactor' should have a prototype error
我找不到任何代碼問題。可能是什麼問題?
把'無效printPrimeFactor(INT數,INT因子);'聲明之前'main' – 2014-09-20 11:46:44
爲什麼還在使用的Turbo-C?有幾個編譯器是[自由軟件](http://fsf.org/)(例如[GCC](http://gcc.gnu.org/)....),並且更符合標準,提供了良好的診斷,並且優化更好。 – 2014-09-20 11:57:20
這行:int inputs [10];應該是int輸入[count];所以代碼將有正確大小的輸入插槽可用。 – user3629249 2014-09-22 05:49:03