[C] Risoluzione esercizio...

enrb

Utente Attivo
11
0
... per voi sarà semplicissimo, ma purtroppo io non ci capisco tanto di c...


Data la traccia sotto riportata completare il codice in modo di aumentare di 1 tutti gli interi pari e diminuire di 1 tutti quelli dispari nell'array vettore[] di dimensione dim. Riportare come risultato il numero che comparira' a monitor. Per esempio un vettore che contiene gli elementi {4,56,3,78,23} dopo essere stato aggiornato deve contenere gli elementi {5,57,2,79,22} .


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


float CalcolaRisultato(int vettore[], int dim);

int main()
{

 int vettore[]= {6,5,4,3,3,1,14,67,89,105,24,56,78, 9,
 6,5,4,3,2,1,14,67,89,100,24,56,78,9,6,5,4,
 3,2,11,14,67,89,100,24,56,78, 9,
 6,5,4,3,2,1,14,67,89,100,24,56,78,9,6,5,4,3,2,1,14,
 67,89,100,24,46,78, 9,
 2,1,14,67,89,100,24,56,78, 9,
 6,5,4,37,2,1,14,67,89,100,24,56,78,
 9,6,5,4,5,2,1,14,67,89,100,24,56,78, 9,
 6,5,4,3,2,1,14,67,89,100,24,56,78,9,6,5,4,3,2,1,14,67,89,102,24,56,78, 9,
 6,5,4,3,2,1,14,67,89,67,89,100,24,5,79,9,6,5,4,3,2,1,
 104,24,56,78,9,6,5,4,3,2,1,14,67,89,100,24,56,78, 9,
 6,5,4,3,2,1,14,68,89,100,24,56,79,9,6,5,4,3,2,1,14,67,89,100,24,56,78, 9,
 6,5,4,3,12,1,14,67,89,100,24,56,78,9,6,5,4,3,
 6,5,4,3,5,1,14,67,89,100,24,56,
 6,5,4,3,2,1,14,67,89,100,24,56,78,9,6,5,4,3,112,1,14,67,89,100,124,56,78, 9,
 6,5,4,3,2,1,14,67,89,100,24,56,78,9,6,
 5,4,3,2,1,14,67,89,100,24,56,78, 9,
 6,5,4,3,2,14,14,67,89,100,24,56,78,9,6,5,4,3,2,21,14,67,89,100,24,56,78, 9,
 14,67,89,100,24,56,78, 9,6,5,4,3,2,1,14,
 6,5,4,3,2,1,14,67,89,190,24,56,78,9,6,5,4,3,2,1,14,67,89,100,24,56,78, 9,
 78,9,6,5,4,3,2,1,14,67,89,104,24,56,78, 9,
 6,5,4,3,2,1,14,67,89,100,24,56,78,9,6,5,4,3,2,1,14,67,89,100,24,56,78, 9,
 6,5,5,3,2,1,14,67,89,100,24,56,78,9,6,5,4,3,21,1,
 14,67,89,100,24,56,78, 9,
 6,5,4,3,2,1,14,67,99,100,24,56,78,9,6,5,4,0,2,1,14,67,89,110,24,56,78, 9
 };
 
 int dim =462;    // il vettore contiene dim elementi !
 float risultato;

 
  
 // ----- inizio dell'esercizio -------

 // Scrivi il codice che incrementa tutti gli interi pari e decrementa tutti quelli dispari 
 // nell'array vettore[]
 // N.B. la soluzione corretta deve stare dentro l'array vettore[] 


 // ----- fine dell'esercizio -------


 // NON TOCCARE TUTTE LE RIGHE QUI SOTTO
 risultato = CalcolaRisultato(vettore, dim);
 printf("\nrisultato da copiare ed incollare = %d \n\n" , (int) risultato );
 getchar();
 exit(0);
}  // main

float CalcolaRisultato(int vettore[], int dim)
{
   int i;
   float divisore, dividendo=0;
   for(i=0;i < dim; i++)
   {
      dividendo += i * vettore[i];
   }
   divisore = (dim +1)*dim/2; 
   return 100*dividendo/divisore; 
   
}
 

shade81

Nuovo Utente
20
0
Se ho capito bene il problema ovvero incrementare i numeri pari e decrementare i numeri dispari di una unità, si risolve tutto facilmente inserendo sotto // N.B. la soluzione corretta deve stare dentro l'array vettore[] le seguenti righe di codice :

int i, r;
for(i=0;i<dim;i++){
r= vettore % 2;
if (r == 0)
vettore+=1;
else
vettore-=1;
}

ovviamente puoi anche creare una funzione fuori dal main e passargli il vettore per indirizzo..:boh:
 

Entra

oppure Accedi utilizzando

Hot: PS5 VS XBOX X/S?

  • Playstation 5

    Voti: 263 61.6%
  • XBOX Series X/S

    Voti: 164 38.4%

Discussioni Simili