[ Foro de C ]
#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
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
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
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.
#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
#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.)