0

cuando compilo el programa solo me permite escribir la letra pero la parte del numero no, alguien sabe porque ocurre esto? El código es el siguiente:

#include <stdio.h>

int main()
{

    int cuidades,i;
    char nombre;
    double radiacion;

    i=0;

    printf("ingrese la cantidad de cuidades:");
    scanf("%d",&cuidades);

    while(i<cuidades){
    
        printf("\ningrese el nombre de la cuidad:");
        scanf("%c ",&nombre);
    
        printf("ingrese el valor de radiacion:");
        scanf(" %lf",&radiacion);
    
        i++;
    }


    return 0;
}
Londo
  • 933
  • 1
  • 3
  • 14
  • Si no compilara no podrías ejecutar el programa. ¿Alguna de estas otras respuestas te sirve? https://es.stackoverflow.com/a/436266/169744 https://es.stackoverflow.com/a/375375/169744 – Mateo Jan 22 '22 at 20:29
  • Luego de ingresar la cantidad de ciudades, queda un salto de linea en el buffer, que el `scanf` lee cuando le pides un caracter. Puedes colocar un espacio antes o un `%*c` para ignorar el salto de linea. – Pablochaches Jan 24 '22 at 18:34

1 Answers1

0

el programa se ejecuta y por lo tanto se compila. Entonces el fallo de ejecución que mencionas se soluciona poniendo el espacio que está después del %c antes del mismo.
Si no recuerdo mal, se pone antes para borrar algún caracter que quedara en el buffer anteriormente.

printf("\ningrese el nombre de la cuidad:");
        scanf(" %c", &nombre);