Concurs (clasa a 5-a)
Notă: rezolvaţi această problemă fără a folosi tablouri (vectori).
La un concurs de matematică participă elevi din mai multe şcoli din diferite oraşe. Pentru a se putea deosebi între ele lucrările lor, fiecare lucrare este codificată printr-un număr natural cu 3 cifre, să zicem abc, unde a (cifra sutelor) este codul oraşului, b (cifra zecilor) este codul şcolii din oraşul a, iar c (cifra unităţilor) este codul unui elev din şcoala b din oraşul a. Exemplu: lucrarea cu codul 328 este lucrarea elevului cu codul 8 de la şcoala cu codul 2 din oraşul cu codul 3.
Se cunosc: un cod (al lucrării unui elev H, prietenul nostru), numărul n de lucrări premiate şi codurile acestora.
Cerinţă
Se cere să se rezolve cerinţele:
a) Verificaţi dacă H este premiant, sau nu.
b) Determinaţi numărul de premii luate de elevii din oraşul lui H (inclusiv H, dacă a fost premiat).
c) Determinaţi numărul de premii luate de elevii din şcoala lui H (inclusiv H, dacă a fost premiat).
Date de intrare
De pe prima linie a fişierului de intrare concurs.in se citeşte codul lui H; de pe linia a doua fişierului se citeşte valoarea n, iar de pe linia a treia se citesc cele n coduri premiate. Codurile premiate sunt separate prin câte un spaţiu.
Date de ieşire
Cele 3 răspunsuri se vor afişa în fişierul de ieşire concurs.out, pe câte o linie. Pentru prima cerinţă se va afişa pe prima linie a fişierului un mesaj (DA sau NU), după cum H a luat, sau nu a luat premiu. La cerinţele b) şi c) se va scrie câte un număr pe linia a doua respectiv pe linia a treia a fişierului de ieşire.
Restricţii
n este un număr natural nenul, n ≤ 20
Codul de oraş (cifra sutelor din fiecare cod) este de la 1 la 5, inclusiv.
Codurile şcolilor din fiecare oraş (cifra zecilor) este de la 0 la 9, inclusiv.
Codul elevilor (cifra unităţilor) este tot de la 0 la 9 inclusiv.
Mesajul DA/NU se va afişa cu majuscule.
Se acordă 30% din punctaj pentru prima cerinţă rezolvată corect, 70% din punctaj pentru primele două cerinţe rezolvate corect şi punctajul integral pentru toate cele 3 cerinţe rezolvate corect.
Răspunsuri la întrebare
Răspuns de
1
#include <stdio.h>
int main() { FILE *fin, *fout; fin = fopen("concurs.in", "r"); fout = fopen("concurs.out", "w"); int i, n, o, s, h, x, ok; fscanf(fin, "%d%d", &h, &n); o = 0; s = 0; ok = 0; for (i = 0; i < n; i++) { fscanf(fin, "%d", &x); if (h == x && ok == 0) { fprintf(fout, "DA\n"); ok = 1; } if (x / 100 == h / 100) { o++; if (x / 10 == h / 10) s++; } } if (ok == 0) fprintf(fout, "NU\n"); fprintf(fout, "%d\n%d", o, s); fclose(fin); fclose(fout); return 0;}
int main() { FILE *fin, *fout; fin = fopen("concurs.in", "r"); fout = fopen("concurs.out", "w"); int i, n, o, s, h, x, ok; fscanf(fin, "%d%d", &h, &n); o = 0; s = 0; ok = 0; for (i = 0; i < n; i++) { fscanf(fin, "%d", &x); if (h == x && ok == 0) { fprintf(fout, "DA\n"); ok = 1; } if (x / 100 == h / 100) { o++; if (x / 10 == h / 10) s++; } } if (ok == 0) fprintf(fout, "NU\n"); fprintf(fout, "%d\n%d", o, s); fclose(fin); fclose(fout); return 0;}
Alte întrebări interesante
Biologie,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă