I belivi in you

« Older   Newer »
 
  Share  
.
  1.     Like  
     
    .
    Avatar

    Manager

    Group
    User+
    Posts
    20,990
    Reputation
    +414

    Status
    Anonymous
    il do while dell'inserimento lo puoi convertire così:
    int i = 0, boolean = 0, A[la dimensione la metti tu];
    while(i<la dimensione)
    while(boolean == 0 ){
    printf
    scanf
    if(A[i] < 18 || A[i] > 90){
    printf errore blabla
    }
    else{
    printf numero inserito correttamente
    i++;
    bool == 1;}
    }
    bool == 0;
    }
     
    .
  2.     Like  
     
    .
    Avatar

    Register

    Group
    Member
    Posts
    82
    Reputation
    0

    Status
    Offline
    https://onlinegdb.com/34fCmJdXx
     
    .
  3.     Like  
     
    .
    Avatar

    Register

    Group
    Member
    Posts
    82
    Reputation
    0

    Status
    Offline
    https://onlinegdb.com/us3h_njVd
     
    .
  4.     Like  
     
    .
    Avatar

    Register

    Group
    Member
    Posts
    82
    Reputation
    0

    Status
    Offline
    #include<stdio.h>

    #define SIZE1 4
    #define SIZE2 7
    #define BUFFSIZE 4+7

    int element_in_array(int n, int arr[], int size);
    int intersect(int arr1[], int arr2[], int buff[], int a, int b, int c);
    int union_array(int arr1[], int arr2[], int buff[], int a, int b, int c);
    int differ_array(int arr1[], int arr2[], int buff[], int a, int b, int c);
    void print_array(int array[], int size);

    int main(){
    int insieme1[SIZE1], insieme2[SIZE2], buffer[BUFFSIZE];
    int contatore;

    int i= 0;
    while (i<size1){
    printf("insieme1[%d]=", i);
    scanf("%d", &insieme1[i]);
    i++;
    }
    i= 0;
    while (i<size2){
    printf("insieme2[%d]=", i);
    scanf("%d", &insieme2[i]);
    i++;
    }
    //int b= element_in_array(4, insieme1, SIZE1);

    //printf("%d", b);
    intersect(insieme1, insieme2, buffer, SIZE1, SIZE2, BUFFSIZE);
    contatore= intersect(insieme1, insieme2, buffer, SIZE1, SIZE2, BUFFSIZE);
    printf("Elementi in comune sono:\n");
    print_array(buffer, contatore);

    contatore= union_array(insieme1, insieme2, buffer, SIZE1, SIZE2, BUFFSIZE);
    printf("L'unione dei due insiemi è:\n");
    print_array(buffer, contatore);

    contatore= differ_array(insieme1, insieme2, buffer, SIZE1, SIZE2, BUFFSIZE);
    printf("La differenza tra insieme 1 e insieme 2 è:\n");
    print_array(buffer, contatore);

    contatore= differ_array(insieme2, insieme1, buffer, SIZE2, SIZE2, BUFFSIZE);
    printf("Invece la differenza tra insieme 2 e insieme 1 è:\n");
    print_array(buffer, contatore);
    }

    void print_array(int *array, int size){
    int i= 0;
    while (i<size){
    printf("\tArray[%d]= %d\n", i, array[i]);
    i++;
    }
    }
    int element_in_array(int n, int arr[], int size){
    int i= 0;
    while (i<size){
    if (n==arr[i])
    return 1;
    i++;
    }
    return 0;
    }
    int intersect(int arr1[], int arr2[], int buff[], int a, int b, int c){
    int i= 0;
    int counter= 0;

    while (i<a){
    if (element_in_array(arr1[i], arr2, b)){
    buff[counter]= arr1[i];
    counter= (counter+1)%c; //Evito errori runtime, ma questo mi potrebbe far perdere alcuni elementi in comune sovrascrivendoli
    }
    i++;
    }
    return counter;
    }
    int union_array(int arr1[], int arr2[], int buff[], int a, int b, int c){
    int i= 0;
    int counter= 0;
    while (i<a){
    buff[counter]= arr1[i];
    i++;
    counter= (counter+1)%c;
    }
    i= 0;
    while (i<b){
    buff[counter]= arr2[i];
    i++;
    counter= (counter+1)%c;
    }
    if (counter==0) counter= c;

    return (counter==(a+b)) ? counter : 0;
    }
    int differ_array(int arr1[], int arr2[], int buff[], int a, int b, int c){
    int i= 0;
    int counter= 0;
    while (i<a){
    if (!element_in_array(arr1[i], arr2, b)){
    buff[counter]= arr1[i];
    counter= (counter+1)%c;
    }
    i++;
    }
    return counter;
    }
     
    .
3 replies since 15/11/2021, 11:13   36 views
  Share  
.