Ir ao conteúdo

problema com o return


jefferson2008.1

Posts recomendados

Postado

bom dia galera

estou tendo um problema com o return da minha função

se em vez de função faço um procedimento e coloco um printf para imprime o que desejo(soma) dá certo

quando vou usar função e coloco a soma para ser imprimida pelo return simplesmente não aparece nada

int consultapormodelo(no **cid ,no **mod, no **c)

{

char informacao[20];

no *Tem;

int soma;

printf("m ");

scanf("%s",&informacao[0]);

Tem=(no*)malloc(sizeof(no));

Tem =(*mod)->prox;

soma = 0;

while (Tem !=NULL)

{

if (strcmp(Tem->modelo,informacao)==0)

{

Tem=Tem->proxmodelo ;

while (Tem != NULL)

{

soma = soma + Tem->n;

Tem=Tem->proxmodelo;

}

break;

}

else

{

Tem = Tem->prox;

}

}

return(soma);

}

Postado
return não imprime nada... apenas retorna um valor...

nossa isso resolveu meu problema !!!!!!!!!!!!!1

ótimo me expressei mal

deixa-me retificar

então porque a minha função não ta retornado o valor soma

Postado

Por que voce tem que dá o retorno para "alguem". No caso, voce pode fazer o seguinte:

variavel=consultapormodelo(atributos);

Neste caso, a função consultapormodelo retorna soma, logo, variavel vai ter o valor da soma. Isso é um retorno.

Retornar na função somente nao significa nada.

Para imprimir, voce pode botar fora da função:

printf ("%d",consultapormodelo(atributos));

Ficou claro?

Postado
Por que voce tem que dá o retorno para "alguem". No caso, voce pode fazer o seguinte:

variavel=consultapormodelo(atributos);

Neste caso, a função consultapormodelo retorna soma, logo, variavel vai ter o valor da soma. Isso é um retorno.

Retornar na função somente nao significa nada.

Para imprimir, voce pode botar fora da função:

printf ("%d",consultapormodelo(atributos));

Ficou claro?

é estrutura de dados

não devo usar printf

o professor desconsidera e tira ponto

Postado

Sinceramente, posso ta enganado, mas que eu saiba não tem como voce imprimir sem dá um printf! Muito menos com return, ele serve apenas para fazer o que lhe disse.

Postado

Eita mistura. :D

Deve ser teacher fanático.

Os alunos fazem funções soltas e o professor considera ser orientação a objeto porque não usa scanf e printf... já vi isso muito. Mas pode não ser o caso.

Shankar, tem streams. Por exemplo, cout.

jefferson2008.1, pra imprimir sem seu nada querido printf: :)

cout << consultapormodelo(cid,mod,c);

ou

cout.put(consultapormodelo(cid,mod,c));

Até mais.

Postado

Sim...... hahahahahah

Pelo o que eu vi, ele não quer usar função para imprimir o resultado. Mas ele usou printf no inicio do programa, então o problema não está no printf e sim na função. Também pensei no cout mas ia dá no mesmo.

Postado
Sim...... hahahahahah

Pelo o que eu vi, ele não quer usar função para imprimir o resultado. Mas ele usou printf no inicio do programa, então o problema não está no printf e sim na função. Também pensei no cout mas ia dá no mesmo.

valeu pessoal

deixei o printf mesmo

não teve jeito

o prazo de entrega acabou

se ele abrir o codigo para analisar estou perdido

espero que ele não desconte muito

olha o trabalho todo aiiiii

deu muito trabalho isso

#include <stdio.h>

#include <stdlib.h>

#include <malloc.h>

#include <string.h>

typedef struct NO{

int n;

char cidade[20];

char modelo[20];

char cor[20];

struct NO *prox;

struct NO *proxcor;

struct NO *proxcidade;

struct NO *proxmodelo;

}no;

void inicializar(no **celula)

{

(*celula)->proxcor =NULL;

(*celula)->proxcidade = NULL;

(*celula)->proxmodelo=NULL;

(*celula)->prox=NULL;

}

void inserirModelo(no **mod)

{

int i;

int y;

char informacao[20];

no *Nova;

scanf("%d",&y);

for (i=0;i<y ;i++)

{

scanf("%s",&informacao[0]);

Nova = (no *)malloc(sizeof(no));

strcpy(Nova->modelo,informacao);

Nova->prox =(*mod)->prox;

(*mod)->prox = Nova;

}

}

//FUNÇÃO PARA INSERIR COR //

void inserirCor(no **c)

{

int i;

int y;

char informacao[20];

no *Nova;

scanf("%d",&y);

for(i=0;i < y;i++)

{

scanf("%s",&informacao[0]);

Nova = (no *)malloc(sizeof(no));

strcpy(Nova->cor,informacao);

Nova->prox =(*c)->prox;

(*c)->prox = Nova;

}

}

// FUNÇÃO PARA INSERIR CIDADES

void inserirCidade(no **cid)

{

int i;

int y;

char informacao[20];

no *Nova;

scanf("%d",&y);

for (i=0;i< y ;i++ )

{

scanf("%s",&informacao[0]);

Nova = (no*)malloc(sizeof(no));

strcpy(Nova->cidade,informacao);

Nova->prox =(*cid)->prox;

(*cid)->prox = Nova;

}

}

// FUNÇÃO PARA INSERIR NA CELULA PRINCIPAL

void inserirPrincipal(no **cid ,no **mod, no **c)

{

int i, v,y;

char informacaomod[20],informacaocor[20],informacaocid[20];

no *Nova,*Tem,*Tem1,*Tem2;

scanf("%d",&v);

for (i= 0;i< v;i++)

{

scanf("%s%s%s%d",&informacaomod[0],&informacaocor[0],&informacaocid[0],&y);

Nova =(no*)malloc(sizeof(no));

Tem =(*mod)->prox;

while (Tem!= NULL)

{

if (strcmp(Tem->modelo,informacaomod)==0)

{

if (Tem->proxmodelo == NULL)

{

Tem->proxmodelo = Nova;

strcpy(Nova->modelo,informacaomod);

Nova->proxmodelo=(Tem)->proxmodelo;

(Nova)->proxmodelo = NULL;

break;

}

else

{

while (Tem->proxmodelo != NULL)

{

Tem=Tem->proxmodelo;

}

Tem->proxmodelo = Nova;

strcpy(Nova->modelo,informacaomod);

(Nova)->proxmodelo = NULL;

}

}

else

{

Tem = Tem->prox;

}

}

Tem1=(*c)->prox;

while (Tem1 !=NULL)

{

if (strcmp(Tem1->cor,informacaocor)==0)

{

if(Tem1->proxcor == NULL)

{

Tem1->proxcor= Nova;

strcpy(Nova->cor,informacaocor);

Nova->proxcor=(Tem1)->proxcor;

(Nova)->proxcor = NULL ;

}

else

{

while (Tem1->proxcor != NULL)

{

Tem1=Tem1->proxcor;

}

Tem1->proxcor =Nova;

strcpy(Nova->cor,informacaocor);

(Nova)->proxcor = NULL;

}

break;

}

else

{

Tem1 = Tem1->prox;

}

}

Tem2 =(*cid)->prox;

while (Tem2 !=NULL)

{

if (strcmp(Tem2->cidade,informacaocid)==0)

{

if (Tem2->proxcidade ==NULL)

{

Tem2->proxcidade = Nova;

strcpy(Nova->cidade,informacaocid);

Nova->proxcidade=(Tem2)->proxcidade;

(Nova)->proxcidade = NULL;

}

else

{

while (Tem2->proxcidade !=NULL)

{

Tem2=Tem2->proxcidade;

}

Tem2->proxcidade =Nova;

strcpy(Nova->cidade,informacaocid);

(Nova)->proxcidade = NULL;

}

break;

}

else

{

Tem2 = Tem2->prox;

}

}

(Nova)->n = y;

}

}

// CONSULTA APENAS POR MODELO

void consultapormodelo(no **cid ,no **mod, no **c,char informacao[20])

{

no *Tem;

int soma = 0;

Tem=(no*)malloc(sizeof(no));

Tem =(*mod)->prox;

// soma = 0;

while (Tem !=NULL)

{

if (strcmp(Tem->modelo,informacao)==0)

{

Tem=Tem->proxmodelo ;

while (Tem != NULL)

{

soma = soma + Tem->n;

Tem=Tem->proxmodelo;

}

}

else

{

Tem = Tem->prox;

}

}

printf("%d\n",soma);

}

// CONSULTA POR COR

void consultaporcor(no **cid ,no **mod, no **c,char informacao[20])

{

no *Tem;

int soma;

Tem=(no*)malloc(sizeof(no));

Tem =(*c)->prox;

soma = 0;

while (Tem !=NULL)

{

if (strcmp(Tem->cor,informacao)==0)

{

Tem=Tem->proxcor ;

while (Tem != NULL)

{

soma = soma + Tem->n;

Tem=Tem->proxcor;

}

break;

}

else

{

Tem = Tem->prox;

}

}

printf("%d\n",soma);

}

// CONSULTA POR CIDADE

void consultaporcidade(no **cid ,no **mod, no **c,char informacao[20])

{

no *Tem;

int soma;

Tem=(no*)malloc(sizeof(no));

Tem =(*cid)->prox;

soma = 0;

while (Tem !=NULL)

{

if (strcmp(Tem->cidade,informacao)==0)

{

Tem=Tem->proxcidade ;

while (Tem != NULL)

{

soma = soma + Tem->n;

Tem=Tem->proxcidade;

}

break;

}

else

{

Tem = Tem->prox;

}

}

printf("%d\n",soma);

}

// CONSULTA POR MODELO E CIDADE

void consultapormodeloecidade(no **cid ,no **mod, no **c,char informacao[20])

{

char informacao2[20];

no *Tem;

int soma;

scanf("%s",&informacao2[0]);

Tem=(no*)malloc(sizeof(no));

Tem =(*mod)->prox;

soma = 0;

while (Tem !=NULL)

{

if (strcmp(Tem->modelo,informacao)==0)

{

Tem=Tem->proxmodelo ;

while (Tem != NULL)

{

if(strcmp(Tem->cidade,informacao2)==0)

{

soma = soma + Tem->n;

}

Tem=Tem->proxmodelo;

}

break;

}

else

{

Tem = Tem->prox;

}

}

printf("%d\n",soma);

}

// CONSULTA POR MODELO E COR

void consultapormodeloecor(no **cid ,no **mod, no **c,char informacao[20])

{

char informacao1[20];

no *Tem;

int soma;

scanf("%s",&informacao1[0]);

Tem=(no*)malloc(sizeof(no));

Tem =(*mod)->prox;

soma = 0;

while (Tem !=NULL)

{

if (strcmp(Tem->modelo,informacao)==0)

{

Tem=Tem->proxmodelo ;

while (Tem != NULL)

{

if ((strcmp(Tem->cor,informacao1)==0))

{

soma = soma + Tem->n;

}

Tem=Tem->proxmodelo;

}

break;

}

else

{

Tem = Tem->prox;

}

}

printf("%d\n",soma);

}

// CONSULTA POR MODELO COR E CIDADE

void consultapormodeloecorecidade(no **cid ,no **mod, no **c,char informacao[20])

{

char informacao1[20],informacao2[20];

no *Tem;

int soma;

scanf("%s",&informacao1[0]);

scanf("%s",&informacao2[0]);

Tem=(no*)malloc(sizeof(no));

Tem =(*mod)->prox;

soma = 0;

while (Tem !=NULL)

{

if (strcmp(Tem->modelo,informacao)==0)

{

Tem=Tem->proxmodelo ;

while (Tem != NULL)

{

if((strcmp(Tem->cor,informacao1)==0) && (strcmp(Tem->cidade,informacao2)==0))

{

soma = soma + Tem->n;

}

Tem=Tem->proxmodelo;

}

break;

}

else

{

Tem = Tem->prox;

}

}

printf("%d\n",soma);

}

// LISTA MODELO

void listarmodelo(no **mod)

{

no *Tem;

Tem = (no*)malloc(sizeof(no));

Tem = (*mod)->prox;

while (Tem != NULL)

{

printf("%s\n",Tem->modelo);

Tem = Tem->prox;

}

}

// LISTA CORES

void listarcores(no **c)

{

no *Tem;

Tem = (no*)malloc(sizeof(no));

Tem = (*c)->prox;

while (Tem != NULL)

{

printf("%s\n",Tem->cor);

Tem = Tem->prox;

}

}

// LISTA CIDADES

void listarcidades(no **cid)

{

no *Tem;

Tem = (no*)malloc(sizeof(no));

Tem = (*cid)->prox;

while (Tem != NULL)

{

printf("%s\n",Tem->cidade);

Tem = Tem->prox;

}

}

// REMOVE DADOS

void removedalista(no **cid ,no **mod, no **c,char informacao[20])

{

char informacao1[20],informacao2[20];

no *Tem,*Tem1,*Tem2;

scanf("%s%s",&informacao1[0],&informacao2[0]);

Tem =(*mod)->prox;

while (Tem!= NULL)

{

if (strcmp(Tem->modelo,informacao)==0)

{

Tem =(*mod)->proxmodelo;

while(Tem !=NULL)

{

if((strcmp(Tem->cor,informacao1)==0) && (strcmp(Tem->cidade,informacao2)==0))

{

(*mod)->proxmodelo=(Tem)->proxmodelo;

free(Tem);

}

Tem=Tem->proxmodelo;

}

break;

}

else

{

Tem = Tem->prox;

}

}

Tem1=(*c)->prox;

while (Tem1!= NULL)

{

if (strcmp(Tem1->cor,informacao)==0)

{

Tem1=(*c)->proxcor;

while(Tem1!=NULL)

{

if ((strcmp(Tem1->modelo,informacao)==0) && (strcmp(Tem1->cidade,informacao2)==0))

{

(*c)->proxcor=(Tem1)->proxcor;

free(Tem1);

}

Tem1=Tem1->proxcor;

}

break;

}

else

{

Tem1 = Tem1->prox;

}

}

Tem2 =(*cid)->prox;

while (Tem2!= NULL)

{

if (strcmp(Tem2->cidade,informacao)==0)

{

Tem2 = (*cid)->proxcidade;

while(Tem2 !=NULL)

{

if ((strcmp(Tem2->cor,informacao1)==0) && (strcmp(Tem2->modelo,informacao)==0))

{

(*cid)->proxcidade=(Tem2)->proxcidade;

free(Tem2);

}

Tem2=Tem2->proxcidade;

}

break;

}

else

{

Tem2 = Tem2->prox;

}

}

}

int main(void)

{

//declaraçãoes//

char opcao,informacao[20];

no *c;

no *cid;

no *mod;

// no *princ;

//Para inserir os modelos//

mod = (no*)malloc(sizeof(struct NO));

inicializar(&mod);

inserirModelo(&mod);

//Para inserir as cores//

c = (no*)malloc(sizeof(struct NO));

inicializar(&c);

inserirCor(&c);

//Para inserir as cidade//

cid = (no*)malloc(sizeof(struct NO));

inicializar(&cid);

inserirCidade(&cid);

inserirPrincipal(&cid,&mod,&c);

opcao = '0';

while (opcao != 'e')

{

scanf("%s%s",&opcao,&informacao[0]);

if (opcao == 'm')

{

consultapormodelo(&cid ,&mod,&c,&informacao[0]);

}

if (opcao == 'c')

{

consultaporcor(&cid,&mod,&c,&informacao[0]);

}

if (opcao == 't')

{

consultaporcidade(&cid,&mod,&c,&informacao[0]);

}

if (opcao == 's')

{

consultapormodeloecidade(&cid,&mod,&c,&informacao[0]);

}

if (opcao == 'u')

{

consultapormodeloecor(&cid,&mod,&c,&informacao[0]);

}

if (opcao == 'v')

{

consultapormodeloecorecidade(&cid,&mod,&c,&informacao[0]);

}

if (opcao == 'r')

{

removedalista(&cid,&mod,&c,&informacao[0]);

}

if ((opcao == 'l') && (informacao[0] == 'm'))

{

listarmodelo(&mod);

}

if ((opcao =='l') && (informacao[0] =='c' ))

{

listarcores(&c);

}

if ((opcao == 'l') && (informacao[0] =='t'))

{

listarcidades(&cid);

}

}

return (0);

}

// zip nomedoarquivo -e noemdo arviro original

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!