Accedi

Valori compresi in un vettore

PROBLEMA

Dato un array di N elementi inizializzato casualmente, e due numeri forniti da tastiera restituire a video quanti valori e quali nell'array sono compresi tra questi due numeri. restituire anche a video la stampa dell'array capovolte.


CODICE SORGENTE

#include <stdio.h>
#include <stdlib.h>
#define VALORE_MASSIMO 15

//dichiarazione funzioni
void banner_traccia();
void banner();

//funzione ringraziamento
void banner (void) {
 printf("Grazie di aver utilizzato il programma\n");
}

//funzione traccia
void banner_traccia(void) {
 
 printf("Dato un array di N elementi inizializzato casualmente e due numeri forniti da tastiera\nrestituisce a video quanti valori e quali nell'array sono compresi tra questi due numeri.\nRestituisce anche a video la stampa dell'array capovolte");
 sleep(5);
 system("cls");
}

int main(int argc, char *argv[]) {
 
 //sezione dichiarativa
 int range_minimo, range_massimo, i, a=0, c=0, quantita_elementi_compresi=0;
 srand(time(NULL));
 
 //richiamo funzione per visualizzare la traccia
 banner_traccia();
 
 //sezione di input del numero di elementi maggiore di 2
 do {
  system("cls");
  printf("Inserire numero di Elementi:");
  scanf("%i", &a);
 } while(a<2);
 
 //sezione di input del numero minimo
 system("cls");
 printf("Inserire il valore minimo compreso:");
 scanf("%i", &range_minimo); 

 //sezione di input del numero massimo
 do {
  system("cls");
  printf("Inserire il valore massimo compreso:");
  scanf("%i", &range_massimo);
  if (range_massimo<range_minimo) {
   for (c=5;c>0;c--){
    system("cls");
    printf("[!] Il valore immesso non e' valido potrai reinserire il valore tra %i secondi", a);
    sleep(1);
   }
  }
 } while(range_massimo<range_minimo);

 //dichiarazione array
 int array[a];
 
 //assegnazione numero casuale a ogni elemento dell'array
 for (i=0;i<a;i++) {
  array[i]=rand()%VALORE_MASSIMO+1;
 }
 
 //sezione visualizzazione dati
 system("cls");
 printf("----------------------------------------------\nCaratteristiche del vettore di %i elementi:\n----------------------------------------------", a);
 
 //conteggio elementi compresi nel range indicato
 for (i=0;i<a;i++) {
  if ((array[i]>range_minimo) && (array[i]<range_massimo)) {
  quantita_elementi_compresi++;
  }
 }
 printf("\nElementi compresi tra %i e %i: %i",range_minimo, range_massimo, quantita_elementi_compresi);
 
 //visualizzazione elementi compresi con posizione e contenuto
 printf("\nElemento\tContenuto");
 for (i=0;i<a;i++) {
  if ((array[i]>range_minimo) && (array[i]<range_massimo)) {
  printf("\n   %i\t\t   %i", i, array[i]);
  }
 }
 
 //visualizzazione vettore capovolto
 printf("\n----------------------------------------------\nVettore capovolto:\nElemento\tContenuto");
 for (i=a;i>0;i--) {
  printf("\n   %i\t\t   %i", i, array[i-1]);
 }
 printf("\n----------------------------------------------\n");
 printf("Premi un tasto per continuare...");
 
 //sezione chiusura programma
 getch();
 system("cls");
 for (i=0;i<10;i++) {
  banner();
  sleep(1);
 }
 
 system("PAUSE");
 return 0;
}