018 - Caricare un vettore v dimensionato DIM 10 con numeri random.
Visualizzare un vettore.
Mettere prima i numeri primi e poi i non primi, senza alterare l'ordine.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define DIM 10
int main(){
    int v[DIM],i,j,c_primo,k,cdiv,l,v2[DIM];
    k=0;
    l=0;
    c_primo=0;
    srand(time(NULL));
    for (i=0;i<DIM;i++)
        v[i]=rand()%19+1;
    //conto i numeri primi
    for(i=0;i<DIM;i++){
        for(j=1;j<=v[i]/2;j++){
            if(v[i]%j==0){ //conto i divisori
                cdiv++; 
            }
        }
        if(cdiv==1){
            c_primo++;
        }
        cdiv=0;
    }
    //ordino i numeri primi
    for(i=0;i<DIM;i++){
        for(j=1;j<=v[i]/2;j++){//conto i numeri primi
            if(v[i]%j==0){ //conto i divisori
                cdiv++;
            }
        }
        if(cdiv==1){
            v2[l]=v[i];//assegno nelle prime posizioni i numeri primi
            l++;
        } else {
            v2[k+c_primo]=v[i];//sommo all'indice il totale dei numeri primi e li assegno
            k++;
        }
        cdiv=0; // resetto il contatore dei numeri divisori
    }
    //visualizzazione primo array
    for (i=0;i<DIM;i++){
        printf("%3d",v[i]);
    }
    //visualizzazione secondo array
    putchar('\n');
    for (i=0;i<DIM;i++){
        printf("%3d",v2[i]);
    }
    return 0;
}

    
  
018.c