Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- int main(void) {
- int n = 0; // numarul de elemente in tablou
- printf("Introduceti numărul de elemente al tabloului: ");
- scanf("%i", &n);
- int t[n]; // tablou de nume intregi cu marimea `n`
- int pos_min = 0; // pozitia elementului minim
- int pos_max = 0; // pozitia elementului minim
- printf("Introduceti valorile in tablou:\n");
- for(int i = 0; i < n; i++) {
- /* Citeste cate un element in tablou */
- printf("t[%i]=", i);
- scanf("%i", &t[i]);
- // daca valoarea din pozitia initiala `i` este mai mica decat
- // valoarea elementului din pozitia `pos_min`,
- // atunci atribuim in `pos_min` indicele `i` al tabloului
- if (t[i] < t[pos_min]) {
- pos_min = i;
- }
- // salvam pozitia elementului maxim in `pos_max`
- if (t[i] > t[pos_max]) {
- pos_max = i;
- }
- }
- /* Salvăm media numerelor minim și maxim în variabila `m` */
- int m = (t[pos_max] + t[pos_min]) / 2;
- // salvam in `start` pozitia minima a tabloului,
- // de la care va incepe parcurgerea ciclului
- int start;
- if (pos_max > pos_min) {
- start = pos_min;
- } else {
- start = pos_max;
- }
- // facem la fel pentru `end`,
- // ca sa stim pana unde vom citi
- int end = pos_max > pos_min ? pos_max : pos_min;
- // Verificăm dacă există elemente între valoarea minimă și maximă.
- if (start == end || start + 1 == end) {
- printf("Nu sunt valori pentru a fi calculate.\n");
- return 0;
- }
- int s = 0; // suma valorilor inital este 0
- for (int i = start; i < end; i++) {
- /* Verificam daca elementul `t[i]` este mai mic decat media */
- if (t[i] < m) {
- // adaugam valoarea la suma totala suma
- s += t[i]; // sau `s = s + t[i];`
- }
- }
- printf("\nSuma valorilor este %i.\n", s);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement