Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdlib>
- #include <cstdlib>
- #include <iostream>
- #include <iomanip>
- #include <cstring>
- using namespace std;
- void leeCadena(char **&nombre, int &numDat){
- int tam;
- char buffPalabra[100];
- char *auxNombre[100];
- while(1){
- if(!cin.getline(buffPalabra,20)) break;
- tam = strlen(buffPalabra);
- auxNombre[numDat] = new char [tam + 1];
- strcpy(auxNombre[numDat], buffPalabra);
- numDat++;
- }
- nombre = new char*[numDat];
- for (int i = 0; i < numDat; i++) {
- nombre[i] = auxNombre[i];
- }
- }
- int intComp(const void *v1, const void *v2) {
- int i1, i2;
- i1 = *(int*)v1; // Tomamos el valor apuntado por v1 y v2
- i2 = *(int*)v2;
- return i1 - i2; // Para ordenar de mayor a menor ==> return i2 - i1;
- }
- int strComp(const void*v1, const void*v2){
- char**s1 = (char**)v1, **s2 = (char**)v2;
- return strcmp(*s1, *s2);
- }
- void imprime(char ** nombre, int numDat){
- int i;
- cout << "Los nombres ordenados: " << endl;
- for (int i = 0; i < numDat; i++) {
- cout << nombre[i] << endl;
- }
- }
- int main(int argc, char** argv) {
- char** nombre;
- int numDat = 0;
- leeCadena(nombre, numDat);
- qsort(nombre,numDat,sizeof(char*),strComp);
- imprime(nombre,numDat);
- int arr[] = {34, 56, 22, 36, 12, 7, 83, 18, 63, 14};
- qsort(arr, 10, sizeof(int), intComp);
- for (int i = 0; i < 10; i++) {
- cout << arr[i] << " ";
- }
- cout << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement