[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