ayuda programa en c

Iniciado por jonathan1099, 19 Octubre 2016, 04:29 AM

0 Miembros y 1 Visitante están viendo este tema.

jonathan1099

hola.
tengo una duda y no se como solucionarla xD, lo que pasa es que debo hacer un programa que me lea 1 letra luego otra y asi hasta llegar a 20 y me las organice e imprima eso ya lo pude hacer.
el problema es que debo leer  e imprimir a la vez si leo A Iimprimo A  la segunda vez leo J debe imprimir J A la tercera F debe imprimir F J A y asi sucesivamente ...

esto es lo que tengo
#include<stdio.h>
#include <string.h>
char vect[1],vect2[20];
int i,j,,aux;
main(){
aux=0;   
   for( i=0;i<20;i++){
   printf("ingrese letra  %d : ",i+1);
    scanf("%c",&vect);
   _flushall();
    printf("%c",vect);
   
}


   for ( i=0;i<20;i++){
     for( j=i+1;j<20;j++){
      if (vect[j]<vect){      
            aux=vect;
            vect=vect[j];
            vect[j]=aux;
     }
   }
  }
  for(i=0;i<20;i++){
      printf("\n%c",vect);
   }
}


ayuda..

palacio29

Te voy a decir los cambios que haria yo , porque hay algunas cosas que no las se como x ejemplo  flusha, nunca lo use.

1) En el primer for cuando estas cargando los datos del arreglo yo pediria la letra y haria letra=getche(); en vez de usar el scanf y entonces cuando lo queres guardar quedaria

for(i=0;i<20;i++)
{
printf("Ingrese letra");
letra=getche();
vect[i]=letra;
}


Porque yo estoy viendo que lo queres guardar, pero no le pones en que posicion especifica lo queres guardar.

2) En el segundo for que es el ordenamiento o burbujeo en esta linea

if (vect[j]<vect){ 

Te falta agregar los corchetes al otro

Quedaria

if (vect[j]<vect[i]){ 

Y asi con el resto del for.

3) En el ultimo for, tambien te falta los corchetes, porque vos queres que imprima una letra pero le estas pasando todo el arreglo tenes que poner vect, sino no te sirve para nada hacer un for hasta 20.