Ir ao conteúdo
  • Cadastre-se

jubitso

Membro Júnior
  • Posts

    3
  • Cadastrado em

  • Última visita

Reputação

1
  1. @Simon Viegas concordo sim! Funcionou, muito obrigado!
  2. Este código recebe palavras e as exibe em ordem alfabética. Quero saber como posso fazer para que no trecho "Entrada atual:" ele mostre as palavras não na ordem alfabética, mas na ordem dada pelo usuário. E somente no trecho "Palavras ordenadas:" ele mostre em ordem alfabética. #include <stdio.h> #include <stdlib.h> //usado malloc #include <string.h> //usado strcpy #include <ctype.h> //usado toupper int main(){ struct tipo{ char Palavra[20]; void *Prox; }; typedef struct tipo TIPO; TIPO *Inicio, *Fim, *Auxiliar, *Atual, *Anterior; char P[20],R='S'; Inicio=NULL; while (R=='S'){ system("cls"); printf("\n > > > ORDENA PALAVRAS < < < \n"); printf("\n Entrada atual:"); Auxiliar=Inicio; while (Auxiliar!=NULL){ printf(" %s ",Auxiliar->Palavra); Auxiliar= Auxiliar->Prox;} printf("\n\n Qual palavra deseja inserir? "); scanf(" %s",P); Auxiliar=(TIPO *) malloc(sizeof(TIPO)); strcpy(Auxiliar->Palavra,P); Auxiliar->Prox = NULL; if (Inicio == NULL){ //primeiro elemento da estrutura Auxiliar->Prox=NULL; Inicio = Auxiliar; Fim = Auxiliar;} else if (strcmp(P,Inicio->Palavra)<=0){ //insere no inicio Auxiliar->Prox = Inicio; Inicio = Auxiliar;} else if (strcmp(P,Fim->Palavra)>=0){ //insere no fim Fim->Prox = Auxiliar; Fim = Auxiliar;} else{ //insere no meio - antes do primeiro maior Atual = Inicio->Prox; Anterior = Inicio; while (strcmp(Atual->Palavra,Auxiliar->Palavra)<0){ Anterior = Atual; Atual = Atual->Prox;} Anterior->Prox = Auxiliar; Auxiliar->Prox = Atual;} system("cls"); printf("\n > > > ORDENA PALAVRAS < < < \n"); printf("\n Palavras ordenadas: "); Auxiliar=Inicio; while (Auxiliar!=NULL){ printf(" %s ",Auxiliar->Palavra); Auxiliar= Auxiliar->Prox; } printf("\n\n Digite S se deseja continuar: "); scanf(" %c",&R); R = toupper(R); } return 0; }
  3. Boa tarde, estou tendo um pequeno probleminha na liberação da memória alocada. O compilador diz que há um erro na linha de liberação e eu não estou conseguindo identificar esse erro. Aqui está o código: #include <stdio.h> #include <stdlib.h> typedef struct retangulo{ float altura; float largura; float area; float perimetro; }Ret; float valores(Ret *x){ x->area=(x->altura*x->largura); x->perimetro=(x->altura*2)+(x->largura*2); return 0; } int main(){ Ret x; malloc(sizeof(Ret)); printf("Digite a altura: "); scanf("%f", &x.altura); printf("Digite a largura: "); scanf("%f", &x.largura); valores(&x); printf("A area é: %1.f\n", x.area); printf("O perimetro é: %1.f\n", x.perimetro); free(Ret); return 0; } O compilador diz: "expected expression before 'Ret'" na linha "free(Ret);", mas eu não estou conseguindo identificar o que está errado. Desde já agradeço a quem puder me ajudar.

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