2015-09-20 3 views
1

Я пытаюсь скомпилировать это на C, но я не могу увидеть, где это неправильно.Ожидаемая идентификация или «(» перед возвращением 0?

#include <stdio.h> 

int verifica_quatro (int N, int M) 
{ 

    if (M==N) 
     return 1; 

    else 
     return -1; 

} 

int verifica_tres (int N, int M) 
{ 

    if (M==N) 
     return 1; 

    else 
     return -1; 

} 

int verifica_dois (int N, int M) 
{ 

    if (M==N) 

     return 1; 

    else 
     return -1; 

} 

int verifica_grupo (int N, int M) 
{ 

    if (M == 0) 
     M= 100; 

    if (N == 0) 
     N= 100; 

    N= (N-1)/4; 
    M= (M-1)/4; 

    if (N == M) 
     return 1; 
    else 
     return -1; 

} 

int main(void) 
{ 
    int V, N, M, r; 

    int valor = -1; 

    int cont = 4; 

    scanf("%d %d %d", &V, &N, &M); 

    while !(M==0 && N==0 && V==0) { 

     while (M>=10000) { 
      M= M/10; 
     } 

     while (N>=10000) { 
      N= N/10; 
     } 

    while (cont>0 && valor<0){ 

    if (cont == 4){ 
     r = verifica_quatro(N,M); 
     valor = V*2500*r; 

    }else if(cont == 3){ 
     N = N/10; 
     M = M/10; 
     r = verifica_tres(N,M); 
     valor = V*510*r; 
    }else if(cont == 2){ 
     N = N/100; 
     M = M/100; 
     r = verifica_dois(N,M); 
     valor = V*77*r; 
    }else if(cont == 1){ 
     N = N/100; 
     M = M/100; 
     r = verifica_grupo(N,M); 
     valor = V*34*r; 
    } 

    cont--; 

    } 


     } 

    if (valor<0) 
     valor = 0; 

    printf ("%d\n", valor); 
     printf ("Digite M, N e V"); 
     scanf ("%d %d %d", &M, &N, &V); 


    } 

    return 0; 
} 
+0

Этот код является беспорядком. Формат и отступ правильно. – Olaf

+0

Спасибо BLUEPIXY. но он по-прежнему не правильно отступил :-) – chqrlie

+0

Правильно отрисуйте свой код и проблема должна быть очевидной. – immibis

ответ

0

У Вас есть недостающий набор скобок в

while !(M==0 && N==0 && V==0) 

исправить это следующим образом:

while (!(M==0 && N==0 && V==0)) 

Или более Смутно:

while (M|N|V) 

Также: укажите свой код с четырьмя пробелами на уровне и НЕТ ТАБЛ!

0

Эти две строки в конце не имеют никакой функции. Плюс, что сказал chqrlie.

return 0; 
} 
1

Вот ваш код, который скомпилирован успешно.

#include <stdio.h> 
int verifica_quatro (int N, int M) 
{ 

    if (M==N) 
     return 1; 

    else 
     return -1; 

} 

int verifica_tres (int N, int M) 
{ 

    if (M==N) 
     return 1; 

    else 
     return -1; 

} 

int verifica_dois (int N, int M) 
{ 

    if (M==N) 

     return 1; 

    else 
     return -1; 

} 

int verifica_grupo (int N, int M) 
{ 

    if (M == 0) 
     M= 100; 

    if (N == 0) 
     N= 100; 

    N= (N-1)/4; 
    M= (M-1)/4; 

    if (N == M) 
     return 1; 
    else 
     return -1; 

} 

int main(void) 
{ 
    int V, N, M, r; 

    int valor = -1; 

    int cont = 4; 

    scanf("%d %d %d", &V, &N, &M); 

    while (!(M==0 && N==0 && V==0))  //Here a problem with() 
    { 

     while (M>=10000) 
     { 
      M= M/10; 
     } 

     while (N>=10000) 
     { 
      N= N/10; 
     } 

     while (cont>0 && valor<0) 
     { 

      if (cont == 4) 
      { 
       r = verifica_quatro(N,M); 
       valor = V*2500*r; 

      } 
      else if(cont == 3) 
      { 
       N = N/10; 
       M = M/10; 
       r = verifica_tres(N,M); 
       valor = V*510*r; 
      } 
      else if(cont == 2) 
      { 
       N = N/100; 
       M = M/100; 
       r = verifica_dois(N,M); 
       valor = V*77*r; 
      } 
      else if(cont == 1) 
      { 
       N = N/100; 
       M = M/100; 
       r = verifica_grupo(N,M); 
       valor = V*34*r; 
      } 

      cont--; 

     } 


    } 

    if (valor<0) 
     valor = 0; 

    printf ("%d\n", valor); 
    printf ("Digite M, N e V"); 
    scanf ("%d %d %d", &M, &N, &V); 


//} This should be deleted 

    return 0; 
} 

В вашем внешнем время цикла вы пишете

пока! (M == 0 & & N == 0 & & V == 0)

Какой ошибка синтаксиса это должно быть

while (! (M == 0)& Н == 0 & & V == 0))

и распорки, прежде чем return 0 является дополнительной, она должна быть удалена.

+0

Не могли бы вы вспомнить, что вы изменили и почему? – JJJ

Смежные вопросы