[C con Clase] Funcion strlen me da error el printf

Laura Gabriela Costabel lau_gaby_costabel en hotmail.com
Dom Nov 8 00:23:56 CET 2009


Hola a todos:

mire aqui les adjunto el programa q esta hecho con el dev c++, para q me puedan ayudar, hice tantas modificaciones, pero nada sigue saltando el mismo error. 

 

gracias

atte:Laura Costabel

lista con clase C

 

#include<stdio.h>
#include<conio.c>
#include<string.h>

typedef char Cadena40 [40];
Cadena40 nombres [100];
    
/* 
 * comparar implementa comparacion de nombres
 */
int comparar(int i, int j) {
//     printf("%s - %s - %d \n", nombres[i], nombres[j], strcmp(nombres[i], nombres[j]));
     return strcmp(nombres[i], nombres[j]);
} // end comparar()

/* 
 * swap implementa el intercambio de valores
 */
void swap(int i, int j) {
     char aux[40];
//     printf("%s - %s \n", nombres[i], nombres[j]);
     strcpy(aux, nombres[i]);
//     printf("Swap %s \n", aux);
     strcpy(nombres[i], nombres[j]);
     strcpy(nombres[j], aux);
//     printf("%s - %s \n", nombres[i], nombres[j]);
} // end swap()

/* 
 * ordenar implementa ordenamiento ascendente de nombres
 */
void ordenar(int cantidadpersonas) {
     for (int i = 0; i < cantidadpersonas - 1; i++) {
         for(int j = i + 1; j < cantidadpersonas; j++) {
  //               printf("%s - %s \n", nombres[i], nombres[j]);
                 if(comparar(i, j) == 1) {
                      swap(i, j);
                 }
         }
     }
} // end ordenar()

/* 
 * mostrar implementa mostrar los nombres
 */
void mostrar(int cantidadpersonas) {
     for (int i = 0;  i < cantidadpersonas; i++) {
          printf("\n %d  %s ", i, nombres[i]);
     }
     printf("\n Oprima return para continuar ...");
     getch();
} // end mostrar()

/*
 * main Rutina principal
 */


//* Comparamos para la longitud
int comlen(int i, int j) {
//     printf("%s - %s - %d \n", nombres[i], nombres[j], strcmp(nombres[i], nombres[j]));
     int a = strlen (nombres [i]);
     int b = strlen (nombres [j]);
     int c;
     if (a==b) c=0;
        else if (a<b) c=-1;
        else c=1;      
     return c;
} // end comparar()

//* Ordenamos para la longitud
void ordlen(int cantidadpersonas) {
     for (int i = 0; i < cantidadpersonas - 1; i++) {
         for(int j = i + 1; j < cantidadpersonas; j++) {
  //               printf("%s - %s \n", nombres[i], nombres[j]);
                 if(comlen(i, j) == 1) {
                      swap(i, j);
                 }
         }
     }
} // end ordenar()


int main () {
     int cantidadpersonas;
     // Ingresar cantidad de personas
     printf("\n Ingrese la cantidad de la lista de personas: ");
     scanf("%d",&cantidadpersonas);
     // Ingresar los nombres
     for (int i = 0;  i < cantidadpersonas; i++) {
          printf("\n Introducir el nombre %d : ", i);
          scanf("%s", &nombres[i]);
     }
     // Mostrar nombres ingresados
     mostrar(cantidadpersonas);
     // Ordenar la lista de nombres
     ordenar(cantidadpersonas);
     // Mostrar lista ordenada
     printf("\n\n LISTA ORDENADA ALFABETICAMENTE\n");
     
        
     mostrar(cantidadpersonas);
     printf("\n\n LISTA ORDENADA POR LONGITUD\n");
     //*    printf("\n La longitud de\"%s\" es %d", nombres,strlen(nombres);// esto me da error no se porque
     
     ordlen(cantidadpersonas);
     // Mostrar lista ordenada  
     mostrar(cantidadpersonas);
     return 0;
} // end main()

 		 	   		  
_________________________________________________________________
MSN Estilo de Vida: Todo lo que querés saber sobre moda, tendencias y familia. 
http://estilodevida.latam.msn.com/
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20091108/8118f5c8/attachment.html>


Más información sobre la lista de distribución Cconclase