Accedi

Lavoro con tre vettori

PROBLEMA

Scrivere un programma che acquisiti da tastiera due array di interi le cui dimensioni sono fornite da tastiera, restituisce in output un terzo array con accodato del secondo al primo nonché il minimo ed il massimo del terzo array.


CODICE SORGENTE

#include <stdio.h>
#include <stdlib.h>
//Scrivere un programma in C che acquisiti da tastiera due array di interi le cui dimensioni sono fornite da tastiera, restituisce in output un terzo array con accodato del secondo al primo nonché il minimo ed il massimo del terzo array.
//Author: Masone Alessandro
//Date: 2021/02/23

//dichiarazione funzioni
void caricamentoVettoreA();
void caricamentoVettoreB();
void concatenaVettori();
void massimo();
void minimo();
void uscitaProgramma();
//funzione per il caricamento del primo vettore
void caricamentoVettoreA(int vettore_A[], int n_a) {
 //sezione dichiarativa
 int i;
 //ciclo for per caricare il primo array
 for (i=0;i<n_a;i++) {
  printf("inserisci il %i valore del Vettore A: ", i+1);
  scanf("%i", &vettore_A[i]);
 }
}
//funzione per il caricamento del secondo vettore
void caricamentoVettoreB(int vettore_B[], int n_b) {
 //sezione dichiarativa
 int i;
 //ciclo for per caricare il primo array
 for (i=0;i<n_b;i++) {
  printf("inserisci il %i valore del Vettore B: ", i+1);
  scanf("%i", &vettore_B[i]);
 }
}
//funzione per concatenare il primo al secondo vettore
void concatenaVettori(int vettore_A[], int vettore_B[], int vettore_C[], int n_a, int n_b){
 //sezione dichiarativa
 int j=0, i; //j=variabile d'appoggio per il conteggio; i=indice
 //caricamento seconda parte del terzo vettore con il secondo vettore
 for(i=0;i<n_b;i++){
  vettore_C[j] = vettore_B[i];
  j++;
 }
 //caricamento prima parte del terzo vettore con il primo vettore
 for(i=0;i<n_a;i++){
  vettore_C[j] = vettore_A[i];
  j++;
 }
}
//funzione per visualizzare il terzo vettore
void visualizzaVettore(int vettore_C[], int n_a, int n_b){
 //sezione dichiarativa
 int i;
 printf("Vettore C\nElemento\tContenuto");
 //ciclo for per visualizzare il terzo vettore
 for(i=0;i<n_a+n_b;i++){
  printf("\n   %i\t\t   %i", i+1, vettore_C[i]);
 }   
}
//funzione per visualizzare il massimo
void massimo(int vettore_C[], int n_a, int n_b) {
 //sezione dichiarativa
 int max;
 int i;
 max=vettore_C[0];
 for (i=0;i<n_a+n_b;i++) {
  if(max<vettore_C[i]) {
   max=vettore_C[i];
  }
 }
 printf("\nIl valore massimo e': %i", max);
}
//funzione per visualizzare il minimo
void minimo(int vettore_C[], int n_a, int n_b) {
 //sezione dichiarativa
 int min;
 int i;
 min=vettore_C[0];
 for (i=0;i<n_a+n_b;i++) {
  if(min>vettore_C[i]) {
   min=vettore_C[i];
  }
 }
 printf("\nIl valore minimo e': %i", min);
}
//funzione ringraziamento
void uscitaProgramma (void) {
 //sezione dichiarativa
 int i;
 printf("\nPremi un tasto per tornare uscire...");
 getch();
 system("cls");
 for (i=0;i<5;i++) {
  printf("Grazie di aver utilizzato il programma\n\n");
  sleep(1);
 }
}
//funzione principale del programma
int main(int argc, char *argv[]) {
 //sezione dichiarativa
 int n_a, n_b; //n_a=numero di elementi del vettore A; n_b=numero di elementi del vettore B
 printf("Inserisci Elementi del vettore A: ");
 scanf("%i", &n_a);
 //dichiarazione vettore
 int vettore_A[n_a];
 //richiamo funzione
 caricamentoVettoreA(vettore_A, n_a);
 printf("Inserisci Elementi del vettore B: ");
 scanf("%i", &n_b);
 //dichiarazione vettore
 int vettore_B[n_b];
 //richiamo funzione
 caricamentoVettoreB(vettore_B, n_b);
 //dichiarazione vettore
 int vettore_C[n_a+n_b];
 //richiamo funzione
 concatenaVettori(vettore_A, vettore_B, vettore_C, n_a, n_b);
 visualizzaVettore(vettore_C, n_a, n_b);
 massimo(vettore_C, n_a, n_b);
 minimo(vettore_C, n_a, n_b);
 uscitaProgramma();
 system("PAUSE");
 return 0;
}