Untitled
unknown
c_cpp
4 months ago
4.1 kB
14
Indexable
#include <stdio.h> /* 1) Chiede all'utente di inserire due numeri N e M (con N, M ≥ 3) 2) Crea due array di dimensione N e M 3) Per ogni array: 3.1) I numeri devono essere compresi tra -20 e +20 (inclusi) 3.2) Non si possono inserire due numeri consecutivi con la stessa parità (non possono esserci due pari o due dispari di seguito) 3.3) La somma totale dei numeri in ogni array deve essere positiva Il programma deve poi: 4) Confrontare i due array e creare un terzo array di dimensione pari al minimo tra N e M, dove: 4.1) Ogni elemento è il risultato della moltiplicazione degli elementi nella stessa posizione dei due array, ma solo se entrambi gli elementi sono primi 4.2) Se almeno uno dei due numeri non è primo, inserire 0 in quella posizione Infine, il programma deve: 5) Stampare il numero di coppie di numeri primi trovate 5.1) Per ogni posizione del terzo array con valore diverso da 0, stampare quale percentuale rappresenta rispetto alla somma totale di tutti i valori non nulli del terzo array 5.2) Identificare se esiste almeno una posizione i tale che l'elemento in posizione i del terzo array sia maggiore della somma di tutti gli elementi nelle posizioni precedenti ad i */ int main() { int N,M; int array1[100], array2[100]; int somma1= 0, somma2= 0; do { printf("Inserisci N (>= 3): "); scanf("%d", &N); } while (N < 3); do { printf("Inserisci M (>= 3): "); scanf("%d", &M); } while (M < 3); printf("\nInserisci %d numeri per il primo array:\n", N); for(int i=0; i<N; i++) { if(i==0){ do{ printf("Numero %d ", i+1); scanf("%d", &array1[i]); somma1=array1[i]; }while(array1[i] < -20 || array1[i] > 20); }else{ do{ printf("Numero %d ", i+1); scanf("%d", &array1[i]); int somma_temporanea = somma1+array1[i]; }while((array1[i] < -20 || array1[i] > 20) || (array1[i] % 2 == 0 && array1[i-1] % 2 == 0) || (array1[i] % 2 != 0 && array1[i-1] % 2 != 0) || somma_temporanea<=0); somma1= somma_temporanea; } } printf("\nInserisci %d numeri per il secondo array:\n", M); for(int i=0; i<M; i++) { if(i==0){ do{ printf("Numero %d ", i+1); scanf("%d", &array2[i]); somma2=array2[i]; }while(array2[i] < -20 || array2[i] > 20); }else{ do{ printf("Numero %d ", i+1); scanf("%d", &array2[i]); int somma_temporanea = somma2+array2[i]; }while((array2[i] < -20 || array2[i] > 20) || (array2[i] % 2 == 0 && array2[i-1] % 2 == 0) || (array2[i] % 2 != 0 && array2[i-1] % 2 != 0) || somma_temporanea<=0); somma2= somma_temporanea; } } int array3[100]; int dim_fittizzia; if(N <= M) { dim_fittizzia = N; }else{ dim_fittizzia = M; } int coppie_primi=0; int somma3=0; for(int i=0; i < dim_fittizzia; i++) { int primo1 = 1; // Assumiamo che il numero sia primo if(array1[i] <= 1){ primo1 = 0; }else{ for(int j=2; j<array1[i]-1; j++) { if(array1[i] % j == 0) { primo1=0; } } } int primo2=1; if(array2[i] <= 1){ primo2 = 0; }else{ for(int j=2; j<array2[i]-1; j++) { if(array2[i] % j == 0) { primo2=0; } } } if(primo1==1 && primo2 == 1) { array3[i] = array1[i] * array2[i]; coppie_primi++; somma3 = somma3 + array3[i]; }else{ array3[i] =0; } } printf("Coppie primi: %d", coppie_primi); return 0; }
Editor is loading...
Leave a Comment