Я продолжаю получать пять ошибок в моем коде, которые говорят об ошибке: ожидаемое выражение при обсуждении переменных в моей функции. Я просмотрел этот сайт и другие места, но я не могу найти, что не так.C: Я продолжаю получать ошибки, которые говорят об ошибке: ожидаемое выражение
Вот код:
#include <stdio.h>
#define TRUE 1
#define FALSE 0
void separate_digits (long int n);
void print_array (int a[10]);
int digits_different (int a[10]);
int divisible (int a[10], int n);
int main()
{
long int n;
printf("Enter a positive integer or 0 (zero) to end:");
scanf("%ld\n", &n);
while (n != 0)
{
if (n < 0)
{
printf("Wrong input\n");
}
else
{
separate_digits (long int n);
}
printf("Enter a positive integer or 0 (zero) to end:");
scanf("%ld\n", &n);
}
printf("*** Program Terminated ***\n");
}
void separate_digits (long int n)
{
int a[10] = {0};
int digit;
int num = n;
while (num > 0)
{
digit = num % 10;
++a[digit];
num = num/10;
}
print_array (int a[10]);
if (a[0] != 0)
{
printf("Wrong input for the second part.\n");
printf("Input should not contain zero.\n");
}
else if (digits_different (int a[10]) == FALSE)
{
printf("Wrong input for the second part.\n");
printf("Input should not contain each digit more than once.\n");
}
else if (divisible (int a[10], int n) == FALSE)
{
printf("%1ld is not divisible by its digits.\n", n);
}
else
{
printf("%1ld is divisible by its digits.\n", n);
}
}
void print_array (int a[10])
{
int i;
printf("\n\n\n");
printf("Digits: 0 1 2 3 4 5 6 7 8 9\n");
printf("Occurrences: ");
for (i = 0; i < 10; i++)
{
printf("a[i] ");
}
}
int digits_different (int a[10])
{
int i;
for (i = 0; i < 10; i++)
{
if (a[i] > 1)
return FALSE;
else
return TRUE;
}
}
int divisible (int a[10], int n)
{
int i;
int num;
for (i = 0; i < 10; i++)
{
if (a[i] == 0)
continue;
else if (num % i != 0)
return FALSE;
}
return TRUE;
}
Вот ошибки я получаю:
Lab_Assignment_6_Sarah_H.c:27:21: error: expected expression
separate_digits (long int n);
^
Lab_Assignment_6_Sarah_H.c:53:16: error: expected expression
print_array (int a[10]);
^
Lab_Assignment_6_Sarah_H.c:61:31: error: expected expression
else if (digits_different (int a[10]) == FALSE)
^
Lab_Assignment_6_Sarah_H.c:67:24: error: expected expression
else if (divisible (int a[10], int n) == FALSE)
^
Lab_Assignment_6_Sarah_H.c:67:35: error: expected expression
else if (divisible (int a[10], int n) == FALSE)
Вам не нужно передавать тип параметра 'separate_digits (long int n);' -> 'separate_digits (n);' –
вашей функции 'main' отсутствует оператор return, а' int main() '- плохая форма, используйте' int main (void) 'или' int main (int argc, char ** argv) 'вместо –