я написал следующую программу 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);
}
}
}
И по компиляции (в окнах, турбо-C), я держу получить ошибку:
Function 'printPrimeFactor' should have a prototype error
I не удалось найти никаких проблем с кодом. Что может быть проблемой?
поставил 'аннулируются printPrimeFactor (INT число, Int фактор),' 'декларацию до main' –
Почему вы до сих пор используют Turbo-C? Несколько компиляторов являются [бесплатное программное обеспечение] (http://fsf.org/) (например, [GCC] (http://gcc.gnu.org/) ....) и более стандартизированы, дают хорошую диагностику и оптимизируйте лучше. –
Эта строка: int input [10]; должен быть int input [count]; поэтому код будет иметь правильный размер массива доступных слотов. – user3629249