Ir para conteúdo
Fórum Script Brasil

Inu

Membros
  • Total de itens

    2
  • Registro em

  • Última visita

Sobre Inu

Inu's Achievements

0

Reputação

  1. #include<stdio.h> #include<stdlib.h> #include<math.h> #include<ctype.h> /*estabelecendo estrutura para receber um caractere*/ struct lista { char caractere; struct lista *prox; }; typedef struct lista list; /*função para inserir uma nova estrutura na lista*/ list *insere(list *L,char c) { list*novo=(list*) malloc(sizeof(list)); novo-> caractere = c; novo-> prox = L; return novo; } /*função para fazer a ordenação de caracteres utilizando um vetor*/ list *ordenar(list *L) { list *p; int cont_dig, cont_caract; int i=0,j=0; for(list *p= L; p!=NULL; p= p->prox) { if(isdigit(p->caractere)) cont_dig++; else cont_caract++; } char *vetor=(char*) malloc(cont_dig*sizeof(char)); /*Alocando espaço na memoria para o vetor de digitos*/ char *vetor2=(char*) malloc(cont_caract*sizeof(char)); /*Alocando espaço na memoria para vetor de caracteres*/ for(list *p= L; p!=NULL;p= p->prox) { if(isdigit(p->caractere)) { vetor[i]= p->caractere; i++; } else { vetor2[j]= p->caractere; j++; } } vetor[i] = ''; vetor2[j] = ''; list *organizado; organizado = NULL; for(i=j-1;i>=0;i--) { organizado=insere(organizado,vetor[i]); } for(i=0;i<j;i++) { organizado=insere(organizado,vetor2[j]); } return organizado; } /*função para imprimir*/ void imprime(list *L) { list *p = L; while(p!= NULL) { printf("%c",p->caractere); p= p->prox; } } main() { char caractere_user; int i,numero_caract; list*L; L=NULL; printf("Digite o numero de caracteres que voce deseja ordenar\n"); scanf("%d", &numero_caract); for(i=0;i<=numero_caract;i++) { printf("Digite um caractere\n"); scanf("%c", &caractere_user); fflush(stdin); L=insere(L , caractere_user); fflush(stdin); } L= ordenar(L); imprime(L); system("pause"); } Vlw! Agora já da pra entrar os caracteres, porém mais a frente o mesmo erro persiste, da a mensagem ''o programa parou de funcionar''..
  2. (receber caracteres do usuario e retornar primeiro as letras depois os dígitos na seguinte ordem: A34RGF -> ARGF43 #include<stdio.h> #include<stdlib.h> #include<math.h> #include<ctype.h> /*estabelecendo estrutura para receber um caractere*/ struct lista { char caractere; struct lista *prox; }; typedef struct lista list; /*função para inserir uma nova estrutura na lista*/ list *insere(list *L,char c) { list*novo=(list*) malloc(sizeof(list)); novo-> caractere = c; novo-> prox = L; return novo; } /*função para fazer a ordenação de caracteres utilizando um vetor*/ list *ordenar(list *L) { list *p; int cont_dig, cont_caract; int i=0,j=0; for(list *p= L; p!=NULL; p= p->prox) { if(isdigit(p->caractere)) cont_dig++; else cont_caract++; } char *vetor=(char*) malloc(cont_dig*sizeof(char)); /*Alocando espaço na memoria para o vetor de digitos*/ char *vetor2=(char*) malloc(cont_caract*sizeof(char)); /*Alocando espaço na memoria para vetor de caracteres*/ for(list *p= L; p!=NULL;p= p->prox) { if(isdigit(p->caractere)) { vetor[i]= p->caractere; i++; } else { vetor2[j]= p->caractere; j++; } } vetor[i] = ''; vetor2[j] = ''; list *organizado; organizado = NULL; for(i=j-1;i>=0;i--) { organizado=insere(organizado,vetor[i]); } for(i=0;i<j;i++) { organizado=insere(organizado,vetor2[j]); } return organizado; } /*função para imprimir*/ void imprime(list *L) { list *p = L; while(p!= NULL) { printf("%c",p->caractere); p= p->prox; } } main() { char caractere_user; int valor=0; list*L; L=NULL; switch(valor) { case 0 : { printf("Digite um caractere\n"); scanf("%c", caractere_user); fflush(stdin); L=insere(L , caractere_user); printf("Voce deseja digitar outro caractere?\n(0=SIM)(1=não)"); scanf("%d",valor); fflush(stdin); } case 1 : { printf("Voce optou por não digitar mais caracteres\n"); break; } default: { printf("Valor inexistente\nERRO\n"); exit(0); } } L= ordenar(L); imprime(L); system("pause"); } Galera não tá compilando, e eu não consigo achar o erro! Passa pelo run, porém dá erro durante o .exe Alguém poderia me ajudar? Vlw
×
×
  • Criar Novo...