Thursday, January 7, 2016

17) Determinarea elementului maxim dintr-un vector + aparitiile sale (subprogram)

Sa se scrie programul care afiseaza elementul maxim dintr-un vector precum si pozitiile pe care apare acesta. Vectorul va fi alocat dinamic iar elementele acestuia se vor citi de la tastatura.

  

#include <stdio.h>
#include <stdlib.h>

void maxim(float *v, float *max, float *aparitii_maxim, int dim) {
    int i, k=0;
    *max = -99999;
    for(i=0;i<dim;i++) {
        if(v[i]>*max) {
            *max = v[i];
            k=1;
            aparitii_maxim[0] = i;
        }
        else if (v[i]==*max) {
            aparitii_maxim[k++] = i;
        }
    }

    printf("Elementul maxim este: %6.1f \n", *max);

    if(k>0) {
        for(i=0;i<k;i++) {
           printf("Maximul apare pe pozitiie: %6.0f \n", aparitii_maxim[i]);
        }
   }

}


int main() {
    float *v, element_maxim, aparitii[20];
    int i, dim;
    printf("Dimensiune vector: "); scanf("%d", &dim);
    v = (float*)malloc(dim*sizeof(float));
    for(i=0;i<dim;i++) {
        printf("v[%d] = ", i); scanf("%f", &v[i]);
    }

    maxim(v, &element_maxim, aparitii, dim);


}







No comments:

Post a Comment