Dev - C++ - Crear un arreglo tipo string de 10 elementos (nombres)

 
Vista:
Imágen de perfil de Francisco
Val: 49
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Crear un arreglo tipo string de 10 elementos (nombres)

Publicado por Francisco (36 intervenciones) el 22/01/2018 00:57:30
Hola, como estan?
Me encontre haciendo un programa que cargue 10 nombres de un arreglo de tipo string y que los muestre del mas largo al mas corto,
y en otro bloque del codigo que los muestre del nombre mas corto al mas largo.
Es un programa que pense varias veces pero no me salio.
Para hallar el nombre mas largo y el mas corto puedo hacer.

1
2
3
4
5
6
7
8
9
for(int i=0;i<10;i++){
 
    if(arr[i].length()<arr[menor].length()){
        menor=i;
    }
    if(arr[i].length()>arr[mayor].length(){
        mayor=i;
    }
}
Necesito imprimir los elementos del arreglo(no confundir con lista) desde el nombre mas largo hacia el mas corto y en otro bloque de instrucciones imprimirlos desde el nombre mas corto hacia el mas largo.
Indiquenme como hacerlo por favor. Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Crear un arreglo tipo string de 10 elementos (nombres)

Publicado por harol (31 intervenciones) el 24/01/2018 03:59:48
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <iostream>
#include <stdlib.h>
#include <string.h>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
 
int main(int argc, char** argv) {
 
	char nombre[50];
	string captarNombre[10];
	int longitud[10];
	int aux = 0;
	string auxn;
 
	cout<<"Ingrese 10 nombres: "<<endl;
	for(int i=0; i<10; i++){
		cout<<"Ingrese nombre "<<i+1<<": ";cin.getline(nombre,51,'\n');
		captarNombre[i] = nombre;
		longitud[i] = strlen(nombre);
	}
	//ordenando mayor a menor
	for(int i=0; i<10; i++){
		for(int j=0; j<i; j++){
			if(longitud[i] > longitud[j]){
				//ordeno longitud
				aux = longitud[i];
				longitud[i] = longitud[j];
				longitud[j] = aux;
				//ordeno nombres
				auxn = captarNombre[i];
				captarNombre[i] = captarNombre[j];
				captarNombre[j] = auxn;
			}
		}
	}
	//mostrar
	cout<<endl;
	cout<<"Los nombres ordenados de mayor a menor son: "<<endl;
	for(int i=0; i<10; i++){
		cout<<captarNombre[i]<<endl;
	}
	cout<<endl<<endl;
	cout<<"Los nombres mostrados de menor a mayor son:"<<endl;
 
	for(int i=9; i>=0; i--){
		cout<<captarNombre[i]<<endl;
	}
 
	system("PAUSE");
	return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar