Accedi

Lavorare con i vettori

PROBLEMA

Scrivere un programma che legge da tastiera un array di numeri reali diversi da 0. La lettura termina quando la somma dei numeri è maggiore di 50 e comunque non si possono immettere più di 100 numeri. Stampare in output la somma dei numeri dispari.


CODICE SORGENTE

#include <stdio.h> //libreria
#include <stdlib.h> //libreria
#define NUMERI 100 //costante
#define SOMMA 50 //costante

int main(int argc, char *argv[]) { //start body
 float numero[NUMERI]; //dichiarazione array
 int i=0, numero_dispari=0;
 float somma=0, somma_dispari=0; //dichiarazione
 printf("legge da tastiera un array di numeri reali diversi da 0.\nLa lettura termina quando la somma dei numeri e' maggiore di 50 e comunque non si possono immettere piu' di 100 numero.\nStampare in output la somma dei numeri dispari.\n");
 sleep(5); //pausa 5 secondi
 system("cls"); //clear
 do { //inizio ciclo do-while
  do { //inizio ciclo do-while
   printf("Inserisci il numero %i:", i+1); //testo a video
   scanf("%f", &numero[i]); //input
  } while (numero[i]==0); //fine do-while rig.16
 somma=somma+numero[i]; //calcolo
 numero_dispari=numero[i]; //casting variabile
 if (numero_dispari%2!=0) { //se è dispari
  somma_dispari=somma_dispari+numero[i]; //calcolo
 }
 i++; //incremento
 } while(i<NUMERI && somma<=SOMMA); //fine ciclo do-while rig.15 
 system("cls"); //clear
 printf("Somma dei numeri dispari inseriti fin ora e': %f\n\n\n\nClicca un tasto per continuare...", somma_dispari); //testo a video

 system("PAUSE");
 return 0;
}