Stack Overflow en español Asked by Agustin Medrano on November 20, 2021
me han dejado crear un programa que pregunte el nombre de un alumno, pregunte el nombre de 4 materias y por ultimo sus calificaciones de esas materias. El problema es que al introducir el valor de la segunda materia la consola se cierra y no se muestra ningún erro. Todo lo anterior funciona bastante bien, sin embargo al preguntarme por el valor de la primera materia e introducir un valor, el programa se cierra y no muestra ningún error, agradecería su ayuda.
¡Gracias!
#include <stdio.h>
int main () {
char Nombre[100];
char materia1[100];
char materia2[100];
char materia3[100];
char materia4[100];
int a, b, c, d, e, f;
// Imprimir la solicitud para obtener el nombre del alumno
printf("Escribe tu nombre completo:n");
scanf("%[^n]%*c", Nombre);
// Solicitar las nombres de las materias //
// Nombbre de la materia 1
printf("Escribe el nombre de tu primera materia:n");
scanf("%[^n]%*c", materia1);
// Nombbre de la materia 2
printf("Escribe el nombre de tu segunda materia:n");
scanf("%[^n]%*c", materia2);
// Nombbre de la materia 3
printf("Escribe el nombre de tu tercera materia:n");
scanf("%[^n]%*c", materia3);
// Nombbre de la materia 4
printf("Escribe el nombre de tu cuarta materia:n");
scanf("%[^n]%*c", materia4);
// Solicitar las calificaciones de las materias //
// Calificacion de la materia 1
printf("Escribe tu calificacion de %s (1 - 10):n", materia1);
scanf("%i", a);
// Calificacion de la materia 2
printf("Escribe tu calificacion de %s (1 - 10):n", materia2);
scanf("%i", b);
// Calificacion de la materia 3
printf("Escribe tu calificacion de %s (1 - 10):n", materia3);
scanf("%i", c);
// Calificacion de la materia 4
printf("Escribe tu calificacion de %s (1 - 10):n", materia4);
scanf("%i", d);
e = a + b + c + d; // Suma de las 4 materias
f = e / 4; // Suma total de las materias dividida entra las 4 materias para obtener promedio
// Imprimir el nombre y promedio del alumno
printf("%c tus promedio es de: %i", Nombre, f);
return 0;
}
scanf("%i", a);
scanf
necesita recibir punteros, ya que de otra forma le sería imposible copiar la entrada del usuario en las variables que le facilitas.
Dado que a
no es un puntero no puedes pasarle ese valor directamente, necesitas obtener la dirección de memoria de dicha variable, y para eso tenemos el operador &
:
scanf("%i", &a);
// ^
Answered by eferion on November 20, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP