Untitled
/* Scrivere un sottoprogramma che riceve in ingresso un array di numeri interi positivi e qualsiasi altro parametro ritenuto strettamente necessario. Il sottoprogramma rimuove dall'array tutti i numeri non primi e restituisce al chiamate il numero di elementi alla fine presenti nell'array. Esempio Se la funzione riceve in ingresso l'array contenente i valori: 17 4 6 5 7 8, il sottoprogramma lo modificherà in modo tale che contenga la sequenza: 17 5 7 e restituirà al chiamante il valore 3 [17] [4] [6] [5] [7] [8] [17] [5] [7] [4] [6] [8] */ #include <stdio.h> #include <stdlib.h> int is_primo(int num) { if(num < 2){ return 0; } for(int i=2; i<num; i++) { if(num % i == 0) { return 0; } } return 1; } int rimuovi_non_primi(int *array, int size) { //[17] [5] [7] [5] [7] [8] int j=0; for(int i=0; i<size; i++) //i=5 { if(is_primo(array[i]) == 1) { array[j] = array[i]; j++; // 3 } } return j; } int main(int argc, char *argv[]) { int array[] = { 17, 4, 6, 5, 7, 8}; int size = 6; int nuova_dim = rimuovi_non_primi(array, size); for(int i=0; i<nuova_dim; i++) { printf("%d ", array[i]); } return 0; }
Leave a Comment