daily pastebin goal
8%
SHARE
TWEET

Array Dinamici

totore1990 Jan 16th, 2018 (edited) 61 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. ///Dati due array se la somma del Primo è maggiore della somma del Secondo scambia gli array
  4. ///Altrimenti inserisci in coda nell'array A gli elementi di B e dealloca B
  5. int main()
  6. {
  7.     int *a,*b;  ///a-> Primo array - b->Secondo array
  8.     int n;      ///n-> Numero di elementi
  9.     printf("\nInserire il numero di elementi: ");
  10.     scanf("%d",&n);
  11.     ///Alloco i due array
  12.     a=(int *)calloc(n,sizeof(int));
  13.     b=(int *)calloc(n,sizeof(int));
  14.     ///Verifico che i puntatori non siano nulli
  15.     if (a!=NULL&&b!=NULL)
  16.     {
  17.         int i;      ///i->  Indice di scorrimento
  18.         int s1=0;   ///s1-> Somma 1° Array
  19.         int s2=0;   ///s1-> Somma 2° Array
  20.         ///Carico i due array e sommo gli elementi
  21.         system("cls");
  22.         for (i=0;i<n;i++)
  23.         {
  24.             printf("\nInserisci il %d elemento dell'array A: ",i+1);
  25.             scanf("%d",(a+i));
  26.             s1+=*(a+i);
  27.         }
  28.         system("cls");
  29.         for (i=0;i<n;i++)
  30.         {
  31.             printf("\nInserisci il %d elemento dell'array B: ",i+1);
  32.             scanf("%d",(b+i));
  33.             s2+=*(b+i);
  34.         }
  35.         ///Verifico se la somma degli elementi del 1° array è maggiore del 2°
  36.         if(s1>s2)
  37.         {
  38.             ///Procedo allo scambio degli elementi dei singoli elementi
  39.             for (i=0;i<n;i++)
  40.             {
  41.                 *(a+i)=*(a+i)^*(b+i);
  42.                 *(b+i)=*(a+i)^*(b+i);
  43.                 *(a+i)=*(a+i)^*(b+i);
  44.             }
  45.             system("cls");
  46.             ///Stampo gli elementi di A
  47.             printf("\n\nArray A");
  48.             for (i=0;i<n;i++)
  49.                 printf("\nElemento [%2d] : %d",i+1,*(a+i));
  50.             ///Stampo gli elementi di B
  51.             printf("\n\nArray B");
  52.             for (i=0;i<n;i++)
  53.                 printf("\nElemento [%2d] : %d",i+1,*(b+i));
  54.         } else
  55.         {
  56.             ///Realloco lo spazio di A
  57.             a=(int *)realloc(a,(n*2)*sizeof(int));
  58.             ///Verifico che il puntatore restituito non sia nullo
  59.             if(a==NULL) return 0;
  60.             ///Copio gli elementi di B in coda ad A
  61.             for(i=n;i<n*2;i++)
  62.                 *(a+i)=*(b+i-n);
  63.             ///Dealloco B
  64.             free(b);
  65.             system("cls");
  66.             ///Stampo l'array A
  67.             printf("\n\nArray A");
  68.             for(i=0;i<n*2;i++)
  69.                 printf("\nElemento [%2d] : %d",i+1,*(a+i));
  70.         }
  71.     }
  72.     return 0;
  73. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top