Ir ao conteúdo
  • Cadastre-se

Problema com codico C


Strongbolt

Posts recomendados

#include<stdio.h>
#include<stdlib.h>
typedef struct no {
int elemento;
struct no *p;
} tipono;

int enfileira(tipono **f,int elemento);





int main(){
tipono *f;
int elemento,op;

op=0;
while (op!=4){
printf("1-Enfileira\n");
printf("2-Desenfileira\n");
printf("3-Mostrar\n");
printf("4-Sair\n");
scanf("%d",&op);
switch (op){
case 1:printf("Digite o numero\n");
scanf("%d",&elemento);
enfileira(**f,elemento);
break;
case 2:desenfileira(tipono **f,int elemento);
break;
case 3:mostrar(tipono **f);
break;
}
}
}


int enfileira(tipono **f,int elemento){
tipono *novo,*atual;

novo=(*tipono)malloc(sizeoff(tipono));
novo->elemento=elemento;
novo->p=NULL;
if(*f==NULL){
*f=novo
}
else{
atual=*f;
while(atual->p!=NULL)
atual=atual->p;
atual->p=novo;
}
return 0;
}


int desenfileira(tipono **f,int elemento){
tipono *temp

if(*f!=NULL){
elemento=(*f)->elemento;
tempo=*f;
*f=(*f)->p;
free(temp);
}
return 0;
}

Nao esta todo terminado, mas na hora de compilar da erro na hora de chamar a funcao enfileira. Alguem pode me ilucidar o por que do erro. xDD

Link para o comentário
Compartilhar em outros sites

Olhando o seu código, encontrei vários erros de sintaxe, sendo por falta de atenção mesmo.

Parece também que você não pegou o espírito para se trabalhar com ponteiros.

Bom, vamos lá...

1) Faltou você declarar o cabeçalho da função 'desenfileira', assim o sistema não a reconhecerá.

2) A seguinte função está sendo chamada de maneira errada:


enfileira(**f,elemento);

Se 'f' já é um ponteiro, e você quer passar o ponteiro do ponteiro pra função, então usa-se o '&', ficando assim a chamada:


enfileira(&f,elemento);

3) Você copiou o cabeçalho de uma função esperando que a mesma fosse chamada:


int main(){
...
case 2:desenfileira(tipono **f,int elemento); // isso é um cabeçalho de função.
...

4) A mesma coisa que o item 3, mas para a função 'mostra()':


mostrar(tipono **f);

5) Na função 'infileira()', faltou um ';':


*f=novo;

6) Na função 'desenfileira()', você está chamando uma variável que não foi declara:


tempo=*f;

O correto:


temp=*f;

Consertando esses errinhos, o código já irá compilar.

Link para o comentário
Compartilhar em outros sites

Eu corrigi a maioria dos erros que voce tinha falado mas na hora de postar aqui coloquei o errado. uahsauhsuhashuaHUS

A minha duvida era mesmo na hora de mandar o ponteiro como referencia.

valeu pela ajuda.

Agora deu erro na hora do malloc. Ta falando que ta faltando um ) mas nao consegui ver o motivo.

Codigo certo:

#include<stdio.h>

#include<stdlib.h>

typedef struct no {

int elemento;

struct no *p;

} tipono;

int enfileira(tipono **f,int elemento);

int desenfileira(tipono **f,int elemento);

int main(){

tipono *f;

int elemento,op;

op=0;

while (op!=4){

printf("1-Enfileira\n");

printf("2-Desenfileira\n");

printf("3-Mostrar\n");

printf("4-Sair\n");

scanf("%d",&op);

switch (op){

case 1:printf("Digite o numero\n");

scanf("%d",&elemento);

enfileira(&f,elemento);

break;

case 2:desenfileira(&f,elemento);

break;

//case 3:mostrar(&f);

// break;

}

}

}

int enfileira(tipono **f,int elemento){

tipono *novo,*atual;

novo=(*tipono)malloc(sizeoff(tipono));

novo->elemento=elemento;

novo->p=NULL;

if(*f==NULL){

*f=novo;

}

else{

atual=*f;

while(atual->p!=NULL)

atual=atual->p;

atual->p=novo;

}

return 0;

}

int desenfileira(tipono **f,int elemento){

tipono *temp

if(*f!=NULL){

elemento=(*f)->elemento;

temp=*f;

*f=(*f)->p;

free(temp);

}

return 0;

}

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!