[ Foro de C ]

array de tipo char

08-Sep-2020 22:24
gonzalez ariel
5 Respuestas



#include <stdio.h>
#include <stdlib.h>

void carga(){
	
	char arrayGenero[5];
	int i=0;
	char femenino='f', masculino='m';
	

		while(i<5){
		printf("ingresa la cantidad de femeninos y masculinos F/M \n");
		scanf("%s",&arrayGenero[i]);
		
		if(femenino==arrayGenero[i]){
			
			i++;
			
		}else if(masculino==arrayGenero[i]){
		
			i++;	
			
		}else{
			printf("a ingresado mal el genero ingreselo nuevamente\n");
		}	
		
	  }	
	for(i=0;i<5;i++){
		printf("%s",arrayGenero[i]);
	}

}		
		

int main() {
	
	carga();
	
}


tengo esta funcion que debe cargar un arreglo solo con datos de f o m pero al momento de ejetuar me doy cuenta que no esta guardando los datos ingresados por el usuario


08-Sep-2020 22:32
Nacho Cabanes (+76)

Si lees letras, tu formato de lectura no debería ser %s sino %c, a no ser que emplees una cadena temporal en la que guardar los datos para luego volcarlos a tu array


08-Sep-2020 22:36
gonzalez ariel

como deberia armarlo para poder luego arrastrar el contenido que aparece en el array ? por que cuando intento crear una variable de tipo char para darle temporalmente asignacion a la letra que entrega el usuario el valor como q no esta en el rango


08-Sep-2020 22:39
Nacho Cabanes (+76)

Créate una cadena temporal de al menos dos letras (porque las cadenas terminan en un carácter nulo) y luego tomas la letra que hay en su posición 0.

Aun así, tienes más fallos. Si la letra es incorrecta, avisas pero no la vuelves a pedir.


08-Sep-2020 23:01
gonzalez ariel

#include <stdio.h>
#include <stdlib.h>

void carga(){
char temporal[2];
char arrayGenero[5];
int i=0;
char femenino[2]={"f"}, masculino[2]={"m"};


while(i<5){
printf("ingresa la cantidad de femeninos y masculinos F/M \n");
scanf("%s",&temporal[2]);

if(femenino==temporal)){

i++;
}else if((masculino==temporal)){

i++;

}else{
printf("a ingresado mal el genero ingreselo nuevamente\n");
}

}



}

meda error de esa forma


08-Sep-2020 23:22
gonzalez ariel

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void carga(){
char genero;
char arrayGenero[5];
int i=0;



while(i<5){
printf("ingresa la cantidad de femeninos y masculinos F/M \n");
scanf("%s",&genero);

if(genero!='f' && genero!='m'){
printf("ingrese otro numero\n");
}else{
i++;
}

}
}

int main() {

carga();

}

ahi me el bucle del while no termina nunca






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)