[ Foro de C ]

Matrices y error

27-May-2021 21:12
Invitado (Nando2312)
1 Respuestas

[Warning] passing argument 1 of 'validar_nombre' from incompatible pointer type [enabled by default]
[Note] expected 'char *' but argument is of type 'char (*)[100]'

#include<stdio.h> //libreria estandar de C
#include<stdlib.h>//contiene atoi
#include<conio.h>//libreria que contiene getch
#include<string.h>//libreria que contiene strlen
#include<ctype.h>//libreria que contiene isdigit
#define F 5//filas
#define C 4//columnas
#define MAX 100//maximos elementos de la cadena

int validar_nombre(char[]);//funcion que valida la cadena
void cargar_nombre(char[][MAX]);//funcion que carga los nombres
void mostrar_nombre(char[][MAX]);//funcion que muestra la matriz


int main(){

char nombre[F][MAX];

cargar_nombre(nombre);
mostrar_nombre(nombre);

getch();

}

int validar_nombre(char validar[]){

int i;

for(i=0;i<strlen(validar);i++){



//si es una letra
if(isalpha(validar[i]) || validar[i]==' '){

//si i es igual a la longitud de la cadena retorna 1
//esto fuerza a que se lea la cadena entera

if(i==strlen(validar)){

return 1;

}

}

else{

//si isalpha no es una letra retorna 0 y se repite
printf("\n\nIngrese solo letras\n\n");

return 0;

}

}
}

void cargar_nombre(char nombre[][MAX]){


int i,j,r;

for(i=0;i<F;i++){

 for(j=0;j<1;j++){
   
do{

fflush(stdin);
printf("Ingrese el nombre del alumno %d: ",i+1);
scanf("%[^\n]s",nombre[i]);
r=validar_nombre(nombre);

}while(r==0);

 }  
}




}
void mostrar_nombre(char nombre[][MAX]){

int i;      

for(i=0;i<F;i++){

printf("Nombre: %s\n",nombre[i]);

}

}


29-May-2021 13:43
Invitado (franki)

hola nando

lo he probado en https://www.online-ide.com/ y

el primer error que me da es de conio que no es estandar, lo quite y en vez de getch puse getchar que si es estandar

el segundo error era el argumento de validar_nombre que mandabas toda la matriz en vez de enviar un solo nombre, tal como habias hecho en el scanf

decirte que la sangria en el código es muy importante, sobre todo si pretendes que alguien lea tu código para ayudarte, pues solo por eso ya no te iba a ayudar pues dificultas la lectura y entedimiento y denota falta de interés en hacer un buen código

https://www.online-ide.com/LXbSGs7Rq8

solo he mirado los errores que dá el compilador y he visto que se ejecuta, no se si tienes algun fallo más de lógica

saludos ;-)






Si ya eres usuario del sistema, puedes contestar desde tu cuenta y así ganar prestigio.

Si sólo eres un visitante, puedes optar por...