Elevii clasei a V-a se repartizează în clase câte 25 în ordinea mediilor clasei a IV-a. Radu este pe locul x (1<=x<=125) în ordinea mediilor, x se citește de la tastatură. Elaborați un poagram prin intermediul căruia se va determina în ce clasă va fi repartizat (A,B,C,D su E)?. Exemplu: date de intrare – x=73; date de ieșire – C.VA ROG IN LIMBAJUL C
Răspunsuri la întrebare
nu știu limbajul C, dar cam asta este ideea problemei
daca x <25 afișezi A
altfel dacă x < 50 afișezi B
altfel dacă x < 75 afișezi C
altfel dacă x < 100 afișezi D
altfel afișezi E
< înseamnă mai mic
succes la implementare
Răspuns 1 — transcrierea pseudocodului furnizat de andreidamian604:
#include <stdio.h>
void main()
{
int x;
scanf("%d", &x);
if (x < 25) printf("A");
else if (x < 50) printf("B");
else if (x < 75) printf("C");
else if (x < 100) printf("D");
else printf("E");
}
Verificare:
bash-5.1$ for i in {1..125}; do ./repartizare_clase.out <<< "$i"; echo; done | uniq -c
24 A
25 B
25 C
25 D
26 E
De observat că repartizarea nu este uniformă. O mică ajustare la algoritmul lui andreidamian604 ar fi folosirea <= pentru comparaţii în loc de <.
Răspuns 2 — calcul simplu:
#include <stdio.h>
void main()
{
int x;
scanf("%d", &x);
printf("%c\n", (x - 1) / 25 + 'A');
}