Jump to content

problema com estrutura e argumento


tyson
 Share

Recommended Posts

boas tenho este programa pra desenvolver mas tou farto de descobrir mas nao encontro o que esta mal neste codigo:

# include <stdio.h>

#pragma warning(disable: 4996)

typedef struct {

int num_sonda;

char data;

char hora;

char local_recolha;

//estrutura de informação do local

char nome_local[80];

char morada[80];

char tipo[80];

int dimensao[80];

//estrutura de medições no local

int temperatura;

int con_oxigenio;

int con_azoto;

int ph;

int turvacao;

}sonda;

int inserir_medicoes(sonda son[], int *num_medicoes, char morada[80])

{

int n;

n=*num_medicoes;

system("cls");

puts("Inserir morada:");

getchar();

gets(son[n].morada);

puts("Inserir tipo:");

getchar();

gets(son[n].tipo);

printf("Inserir dimensao cm(3):");

scanf("%i",&son[n].dimensao);

}

int main(sonda son[], int *num_medicoes, int n){

int opcao=0;

printf("Selecione uma opcao: \n\n[1] Inserir medicoes: \n[2] Pesquisa: \n");

scanf("%d",&opcao);

switch (opcao)

{

case 1:

inserir_medicoes(sonda son[n],char morada[n]);

break;

case 2:

printf("opcao 2");

break;

default:

printf("Inseriu numero errado");

break;

}

}

Link to comment
Share on other sites

Tu já tinhas criado um tópico com isso e eu próprio já te tinha dado a solução para o problema.

Se não encontraste o tópico eu faço isso por ti, vá: http://www.portugal-a-programar.pt/forums/topic/0-find-topic/?do=findComment&comment=361958

Já agora, no mesmo tópico a chamada à função strcmp está mal feita, pelo mesmo motivo da chamada à função gets.

here since 2009

Link to comment
Share on other sites

não, repara:

tu fazes getchar() e depois  fgets

o que ele vai fazer é ler um caracter do input, e parar quando encontrar um enter.

depois vai ler uma string, até encontrar um enter.

Ou seja vai estar à espera de 2 enters quando tu so lhe vais dar um.

XX SINFO - Semana Informática

Link to comment
Share on other sites

WooooW, agora que vi o teu código todo: ele compila assim?

Que parametros é que estás a receber no main?

o main ou é int main() ou int main(int argc, char *argv[]); não conheço essa tua "implementação".

Tens de declarar estas variáveis dentro do main.

XX SINFO - Semana Informática

Link to comment
Share on other sites

keres dizer que o meu main fica entao: int main(int n, sonda son[]){? ele assim ja funciona so que quando aparece a frase insira o nome do local nao deixa inserir e instantaneamente a entra o puts seguinte a pedir a morada

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.