Advertisement
Dany1858

Esercizio 4.3 (immissione monotona con funzione)

Sep 12th, 2014
891
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.83 KB | None | 0 0
  1.     /*Scrivere un programma C che acquisisca un massimo di N valori interi,
  2.     con N costante definita a piacimento. L’acquisizione deve procedere
  3.     finché la serie di numeri è monotona, ovvero costituita da numeri in ordine
  4.     crescente o decrescente. Stampare il contenuto del vettore al termine
  5.     dell’acquisizione
  6.      
  7.     Esempi:
  8.     (N=10)
  9.     1 4 6 10 4               l’inserimento del valore 4 termina le iterazioni
  10.     9 7 6 7                  l’inserimento del valore 7 termina le iterazioni
  11.     1 2 3 4 5 6 7 8 9 10     ho acquisito 10 numeri quindi mi fermo
  12.      
  13.     Suggerimento:
  14.     scrivere innanzitutto una versione semplificata scegliendo una singola
  15.     direzione di monotonia (o crescente o decrescente), quindi passare
  16.     alla soluzione completa. */
  17.      
  18.     #include <stdio.h>
  19.     #include <stdlib.h>
  20.      
  21.     #define MAX 10           //grandezza max array
  22.      
  23.     int control(int, int);     //funzione che controlla l immissione dati
  24.      
  25.     int main()
  26.     {
  27.      
  28.      int i, j, maxi=0;
  29.      int vet[MAX];
  30.      int cntrl, ctrl;
  31.      char risp='s';
  32.      
  33.       while(risp=='s')
  34.                  {
  35.                  while(maxi<=0 || maxi>MAX){
  36.                         printf("\nInserisci un numero di elementi da inserire nel vettore (< %d): ", MAX);
  37.                         scanf("%d",&maxi);
  38.                         while(getchar()!='\n');  
  39.                         }
  40.  
  41.          
  42.                   printf("\nInserisci un valore in posizione 1 e 2: ");
  43.                   scanf("%d %d", &vet[0], &vet[1]);
  44.                   cntrl=control(vet[0], vet[1]);                      //richiamo funzione di controllo
  45.      
  46.                   for(i=2; i<maxi; i++){                              //acquisito restanti elementi
  47.                   printf("immettere valore in posizione %d:  ", i+1);
  48.                   scanf("%d", &vet[i]);
  49.                   if(cntrl==1){                                       //richiamo la funzione di controllo
  50.                                ctrl= control(vet[i-1], vet[i]);       //per valori crescenti.
  51.                                if(ctrl==-1) break;
  52.                                }    
  53.                   else{                                               //richiamo la funzione di controllo
  54.                   ctrl= control(vet[i-1], vet[i]);                    //stavolta do' errore se
  55.                   if(ctrl==1)   break;                                //funzione ritorna vero.
  56.                   }
  57.       }        
  58.       printf("fine.. :-) \n\nricominciare? s o n\t");                   //ricominciamo? :-)
  59.       scanf("%s", &risp);
  60.       if(risp=='s')
  61.       system("cls");
  62.       }
  63.      
  64.       printf("Press any key to continue:");
  65.         getchar();
  66.         return 0;
  67.     }
  68.      
  69.     int control(int a, int b)
  70.     {
  71.          return a<b? 1: -1;
  72.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement