Jump to content

Problema ao compilar


joaovilaca94
 Share

Recommended Posts

Boas!

Ao tentar compilar o meu programa deu-me este erro:

" $ gcc main_menu1.c -o main_menu1

main_menu1.c: In function ‘menu_admin’:

main_menu1.c:97:30: error: expected expression before ‘int’

introduzir_temperaturas(int cid_temp[10][7]);

^

main_menu1.c:102:16: error: expected expression before ‘char’

nomenclar(char *cidades[MAX]); "

declarei as duas funções como "void" e quando as inicializei pus assim:

" introduzir_temperaturas(int cid_temp[10][7]);

nomenclar(char *cidades[MAX]); "

Alguem me consegue identificar o problema e ajudar?

Cumprimentos!

Link to comment
Share on other sites

Boas!

Ao tentar compilar o meu programa deu-me este erro:

" $ gcc main_menu1.c -o main_menu1

main_menu1.c: In function ‘menu_admin’:

main_menu1.c:97:30: error: expected expression before ‘int’

introduzir_temperaturas(int cid_temp[10][7]);

^

main_menu1.c:102:16: error: expected expression before ‘char’

nomenclar(char *cidades[MAX]); "

declarei as duas funções como "void" e quando as inicializei pus assim:

" introduzir_temperaturas(int cid_temp[10][7]);

nomenclar(char *cidades[MAX]); "

Alguem me consegue identificar o problema e ajudar?

Cumprimentos!

Posta a parte do código onde tens os erros usando as tags [ code ].

Edited by Mauro M.
Link to comment
Share on other sites

int menu_admin (ch)
{

printf ("===================================================\n");
printf ("===================================================\n");
printf ("==   ESCOLHA UMA OPERAÇÃO A EXECUTAR       ==\n");
printf ("===================================================\n");
printf ("===================================================\n");
printf ("==                                               ==\n");
printf ("==        1 - Introduzir temperaturas            ==\n");
printf ("==     2 - Dar nome às cidades      ==\n");
printf ("==     3 - Voltar ao menu anterior            ==\n");
printf ("==        4 - Sair                               ==\n");
printf ("==                                               ==\n");
printf ("===================================================\n");
printf ("===================================================\n");
scanf("%d", &ch);

 switch(ch)
  {
   case 1:
    introduzir_temperaturas(int cid_temp[10][7]);
    break;


   case 2:
    nomenclar(char *cidades[MAX]);
    break;

é nesta parte que me dá o erro

$ gcc main_menu1.c -o main_menu1
main_menu1.c: In function ‘menu_admin’:
main_menu1.c:97:30: error: expected exp<b></b>ression before ‘int’
     introduzir_temperaturas(int cid_temp[10][7]);
                             ^
main_menu1.c:102:16: error: expected exp<b></b>ression before ‘char’
     nomenclar(char *cidades[MAX]);

não consigo perceber qual é a expressão necessária antes do "int" e do "char"...

Edited by thoga31
Tags code (p/ gcc output) + GeSHi
Link to comment
Share on other sites

Uma chamada a uma função deve ser simplesmente introduzir_temperaturas(cid_temp);.

A declaração da variável (e.g. int cid_temp[10][7];) deverá ser feita antes (preferencialmente no início da função).

tentei fazer a chamada da função só com

introduzir_temperaturas(cid_temp);

e o erro que deu foi exatamente o mesmo...

Link to comment
Share on other sites

tentei fazer a chamada da função só com

introduzir_temperaturas(cid_temp);

e o erro que deu foi exatamente o mesmo...

Provavelmente o erro passou para o case 2 visto que tens exatamente a mesma coisa. Declara as variáveis ANTES de chamares a funções.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.