aquí está el código
Escriba un código para encontrar la calificación de un estudiante en función de las calificaciones obtenidas por él y según el sistema que se indica a continuación,
1. 90-100-->A 2. 80-90-->B 3. 70-80-->C 4. 60-70-->D 5. <60-->E
#include <stdio.h> int main(){ int marks; printf("Enter your marks(1-100)\n"); scanf("%d\n", &marks); switch (marks) { case 1: printf("Your Grade is A\n"); break; case 2: printf("Your Grade is B\n"); break; case 3: printf("Your Grade is C\n"); break; case 4: printf("Your Grade is D\n"); break; case 5: printf("Your Grade is E\n"); break; } return 0; }¡Ignoremos el manejo de errores y la captura de rango para esta respuesta!
Dado el mapeo, podrías simplemente hacer una división entera
int grade = marks / 10; Luego, active el grade y el case en consecuencia ( switch , predeterminado)
int main(){ int marcas;
printf("Enter your marks(1-100)\n"); scanf("%d\n", &marks); int grade = marks / 10; switch ( grade ) { case 10: case 9: { printf( "Your Grade is A\n" ); break; } case 8: { printf( "Your Grade is B\n" ); break; } case 7: { printf( "Your Grade is C\n" ); break; } case 6: { printf( "Your Grade is D\n" ); break; } default: { printf( "Your Grade is E\n" ); break; } } Nota: hay compiladores que admiten una extensión de idioma que permite rangos (p. ej.) case 90 ... 100: pero estos no son estándar, por lo que no deben recomendarse.
Para los rangos, en C, normalmente necesitará hacer una escalera if-elseif-else .
if ( marks > 100 ) { printf( "You cheated\n" ); } else if ( marks > 90 ) { printf( "Your Grade is A\n" ); } else if ( marks > 80 ) { printf( "Your Grade is B\n" ); } else if ( marks > 70 ) { printf( "Your Grade is C\n" ); } else if ( marks > 60 ) { printf( "Your Grade is D\n" ); } else /* marks < 60 */ { printf( "Your Grade is E\n" ); }Necesita transformar las marks en un número en el rango [1, 5] . Esto se puede hacer, por ejemplo, usando una matriz.
Aquí hay un programa de demostración.
#include <stdio.h> int main(void) { unsigned int marks = 0; printf( "Enter your marks(1-100): " ); scanf( "%u", &marks ); unsigned int grades[] = { 0, 60, 70, 80, 90 }; const size_t N = sizeof( grades ) / sizeof( *grades ); size_t i = 0; while ( i != N && marks < grades[N - ++i] ); switch ( i ) { case 1: puts( "Your Grade is A" ); break; case 2: puts( "Your Grade is B" ); break; case 3: puts( "Your Grade is C" ); break; case 4: puts( "Your Grade is D" ); break; case 5: puts( "Your Grade is E" ); break; } return 0; }#include <stdio.h> int main(){ int marks; printf("Enter your marks between 0 to 100\n"); scanf("%d", &marks); switch(marks/10){ case 10 : case 9 : /* Marks between 90-100 */ printf("Your Grade : A\n" ); break; case 8 : case 7 : /* Marks between 70-89 */ printf("Your Grade : B\n" ); break; case 6 : /* Marks between 60-69 */ printf("Your Grade : C\n" ); break; case 5 : case 4 : /* Marks between 40-59 */ printf("Your Grade : D\n" ); break; default : /* Marks less than 40 */ printf("You failed\n" ); } return 0; }Para encontrar, use switch(marks/10) en la declaración de cambio si su puntuación es 80 y luego 80/10, por lo que saltará al caso 8.