Ir para conteúdo
Fórum Script Brasil
  • 0

String


Isabella

Pergunta

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

#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();
}

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

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;
}

Link para o comentário
Compartilhar em outros sites

  • 0

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 por Isabella
Link para o comentário
Compartilhar em outros sites

  • 0

#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#C

Não use gets. Use fgets

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...