Untitled
unknown
c_cpp
a year ago
1.3 kB
7
Indexable
/*
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;
}Editor is loading...
Leave a Comment