Ciao a tutti!!!! ho un problema con questo programma!
dovrebbe ordinare gli elementi di un array (e questo funziona) e di ritornare la media dei valori pari dell’array ordinato che siano minori di una certa soglia K (e questo non funziona!)
facendo un controllo risulta che non vengono memorizzati i valori pari in un secondo array
ora posto quello che ho fatto io:
#include <stdio.h>
#include <stdlib.h>
int ord_array(int array[],int n);
int mediapari(int array[], int n, int k);
main ()
{
int array[50];
int i;
int n;
int k;
printf ("Di quanti valori e' composto l'array\n");
scanf("%d", &n);
for (i=0; i<n; i++)
{
printf ("inserisci il valore %d dell'array \n",i);
scanf("%d",&array[i]);
}
ord_array(array,n);
printf("I valori ordinati dell'array sono:\n");
i=0;
do{
printf ("%d, \n", array[i]);
i=i+1;
} while (i<n);
printf("\n");
printf("Inserisci fino a che valore K vuoi sommare i numeri pari\n");
scanf ("%d", &k);
mediapari(array,n,k);
printf ("La media dei valori pari fino a K e': %d", mediapari (array,n,k));
system("PAUSE");
return 0;
}
//funzione ordinamento array
int ord_array(int array[],int n){
int i,j;
int pos_min;
int contenitore;
for (i=0; i<n-1; i++)
{
pos_min = i;
for (j=i+1; j<n; j++)
{
if (array[j]<array[pos_min])
{
pos_min=j;
}
}
contenitore=array[i];
array[i]=array[pos_min];
array[pos_min]=contenitore;
}
return (array);
}
//funzione media num pari
int mediapari(int array[], int n, int k){
int i,c,n2,somma;
int arraypari [50];
c=0;
for (i=0; i<n; i++){
if (array [i] %2==0){
array[i]=arraypari[c];
c=c+1;
}
}
n2=c;
somma=0;
for (c=0; c<=n2; c++){
if (arraypari[c]<=k){
somma=arraypari[c]+somma;
}
}
somma=somma/n2;
return (somma);
}