Isabella Postado Janeiro 3, 2009 Denunciar Share Postado Janeiro 3, 2009 Gente estou com uma duvida, preciso entregar um trabalho e não sei fazerEscrever um programa que mostre o passo-a-passo da ordenação por inserção de uma Stringfornecida, no final deve mostrar o total de comparações. O programa deve ser capaz de ler umaString de no mínimo tamanho 20. Mostrar exemplos de entrada/saída para pelo menos 3 Strings detamanho entre 10 e 20:1. String já ordenada.2. String inversamente ordenada3. String aleatóriaAo final da execução o programa de exibir o total de comparações feitasporem não consigo fazer com string, eu tentei, mas só consegui fazer mas comente com vetores#include<stdio.h> #include <conio.h> int main() { int i, j,x; int vetor[5]; printf("Vetor desordenado…\n"); for(i=0;i<5;i++) { printf("num: "); scanf("%i",&vetor[i]); } for (j=1;j<5;j++) { x = vetor[j]; i = j - 1; while((i>=0) && (vetor[i]>x)) { vetor[i+1] = vetor[i]; i = i - 1; } vetor[i+1] = x; } printf("\nVetor ordenado…\n"); for(i=0;i<5;i++) printf("Vetor[%2d]: %3d\n",i+1,vetor[i]); getch(); } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Beraldo Postado Janeiro 3, 2009 Denunciar Share Postado Janeiro 3, 2009 Se você consegue com vetor, consegue com strings, pois elas são vetores de caracteres.É a mesma lógica. A diferença é que você não lerá caractere por caractere da entrada padrão; basta uma função como scanf ou fgets para pegar a string Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Kyle Postado Janeiro 3, 2009 Denunciar Share Postado Janeiro 3, 2009 vê se isso ai dá:#include <stdio.h> #include <strings.h> void StringAleatoria(char* str); void StringInversa(char str[]); int main() { char vetorstr[100]=""; int opcao=0; printf("Digite uma String:\n"); scanf("%s",&vetorstr); do { printf("\n\nEscolha uma opcao:\n 1 - String Aleatoria.\n 2 - String Inversamente ordenada.\n 3 - String Ordenada.\n 4 - Sair\n "); scanf("%d",&opcao); if (opcao==1) StringAleatoria(vetorstr); else if (opcao==2) StringInversa(vetorstr); else if (opcao==3) printf(vetorstr); else printf("\nOpcao invalida."); } while (opcao!=4); return(0); } void StringAleatoria(char* str) { int i; printf("Sua string desordenada:\n "); for (i=0;str[i]!='';i++) { printf("%c",str[i==strlen(str)-1?0:i+1]); }; printf("\n"); return; } void StringInversa(char str[]) { int i=strlen(str); printf("Sua string desordenada:\n "); for (;i>-1;i--) { printf("%c",str[i]); }; printf("\n"); return; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Isabella Postado Janeiro 6, 2009 Autor Denunciar Share Postado Janeiro 6, 2009 (editado) Po tentei fazer aqui e não tah colocando em ordem não#include <stdio.h> #include <stdlib.h> #include <string.h> main () { char a[20]; int i,j,x; printf("String desordenada\n\n"); printf("Digite a string:"); gets(a); for(i=0;i<strlen(a);i++); { x=a[j]; i=j-1; while((i>=0) && (a[i]>x)) { a[i+1] = a[i]; i = i - 1; } a[i+1] = x; } printf("\nString Ordenada\n\n"); for(i=0;i<strlen(a);i++) { printf("%c ",a[i]); } printf("\n\n"); system("pause"); } Editado Janeiro 6, 2009 por Isabella Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Beraldo Postado Janeiro 7, 2009 Denunciar Share Postado Janeiro 7, 2009 #include <stdio.h> #include <stdlib.h> #include <string.h> int main () { char a[20], aux; int i, j, k, len; printf("String desordenada\n\n"); printf("Digite a string:"); fgets(a, 18, stdin); len = strlen(a); k = len - 1; for(i=0;i<len;i++); { for (j = 0; j < k; j++, k--) { if (a[j] > a[j+1]) { aux = a[j]; a[j] = a[j+1]; a[j+1] = aux; } } } printf("\nString Ordenada\n\n"); printf("%s\n\n", a); return 0; }http://pt.wikipedia.org/wiki/Bubble_sort#CNão use gets. Use fgets Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Isabella
Gente estou com uma duvida, preciso entregar um trabalho e não sei fazer
Escrever um programa que mostre o passo-a-passo da ordenação por inserção de uma String
fornecida, no final deve mostrar o total de comparações. O programa deve ser capaz de ler uma
String de no mínimo tamanho 20. Mostrar exemplos de entrada/saída para pelo menos 3 Strings de
tamanho entre 10 e 20:
1. String já ordenada.
2. String inversamente ordenada
3. String aleatória
Ao final da execução o programa de exibir o total de comparações feitas
porem não consigo fazer com string, eu tentei, mas só consegui fazer mas comente com vetores
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.