Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Scrivere un programma C che acquisisca un massimo di N valori interi,
- con N costante definita a piacimento. L’acquisizione deve procedere
- finché la serie di numeri è monotona, ovvero costituita da numeri in ordine
- crescente o decrescente. Stampare il contenuto del vettore al termine
- dell’acquisizione
- Esempi:
- (N=10)
- 1 4 6 10 4 l’inserimento del valore 4 termina le iterazioni
- 9 7 6 7 l’inserimento del valore 7 termina le iterazioni
- 1 2 3 4 5 6 7 8 9 10 ho acquisito 10 numeri quindi mi fermo
- Suggerimento:
- scrivere innanzitutto una versione semplificata scegliendo una singola
- direzione di monotonia (o crescente o decrescente), quindi passare
- alla soluzione completa. */
- #include <stdio.h>
- #include <stdlib.h>
- #define MAX 10 //grandezza max array
- int control(int, int); //funzione che controlla l immissione dati
- int main()
- {
- int i, j, maxi=0;
- int vet[MAX];
- int cntrl, ctrl;
- char risp='s';
- while(risp=='s')
- {
- while(maxi<=0 || maxi>MAX){
- printf("\nInserisci un numero di elementi da inserire nel vettore (< %d): ", MAX);
- scanf("%d",&maxi);
- while(getchar()!='\n');
- }
- printf("\nInserisci un valore in posizione 1 e 2: ");
- scanf("%d %d", &vet[0], &vet[1]);
- cntrl=control(vet[0], vet[1]); //richiamo funzione di controllo
- for(i=2; i<maxi; i++){ //acquisito restanti elementi
- printf("immettere valore in posizione %d: ", i+1);
- scanf("%d", &vet[i]);
- if(cntrl==1){ //richiamo la funzione di controllo
- ctrl= control(vet[i-1], vet[i]); //per valori crescenti.
- if(ctrl==-1) break;
- }
- else{ //richiamo la funzione di controllo
- ctrl= control(vet[i-1], vet[i]); //stavolta do' errore se
- if(ctrl==1) break; //funzione ritorna vero.
- }
- }
- printf("fine.. :-) \n\nricominciare? s o n\t"); //ricominciamo? :-)
- scanf("%s", &risp);
- if(risp=='s')
- system("cls");
- }
- printf("Press any key to continue:");
- getchar();
- return 0;
- }
- int control(int a, int b)
- {
- return a<b? 1: -1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement