Salve,ho iniziato a fare programmazione in C con l' universita'.
Un esercizio ha come scopo chiedere quanti numeri vuoi digitare,farti digitare tot numeri (scelti da te precedentemente),e poi dare come output quanti di questi numeri sono pari,dispari,positivi,negativi e nulli.Ma chiede anche,alla fine,di dire se la sequenza di numeri e' crescente,decrescente o in ordine sparso.
Io ho scritto cosi' il programma:
codice:
#include<stdio.h>
main()
{
int a,b,positivi,nulli,negativi,pari,dispari;
int i,k;
int vet[100];
positivi=nulli=negativi=pari=dispari=0;
i=k=0;
printf("Quanti numeri vuoi digitare? ");
scanf("%d",&a);
for(b=0;b<a;++b){
printf("Digita numero %d: ",b+1);
scanf("%d",&vet[b]);
if(vet[b]>0)
++positivi;
else if(vet[b]<0)
++negativi;
else
++nulli;
if(vet[b]%2==0)
++pari;
else
++dispari;
}
printf("Positivi: %d nulli: %d negativi: %d pari: %d dispari %d ",positivi, nulli, negativi,pari,dispari);
for(b=0;b<a;++b){
if(vet[b]<vet[b+1])
++k;}
for(b=0;b<a;++b){
if(vet[b]>vet[b+1])
++i;}
if(a==k)
printf("La sequenza e' crescente");
else if(a==i)
printf("La sequenza e' decrescente");
else
printf("La sequenza e' in ordine sparso");
return 0;
}
Il problema e' che non sapevo come fare per stabilire la condizione che il vettore vet[b] ha tutti gli argomenti in ordine crescente (o decrescente), allora ho usato le variabili i e k.Se per esempio digito 3 numeri a caso tipo 1,2,3 mi dice stampa "la sequenza e' crescente",ma se li stampo in ordine decrescente (es.:3,2,1) mi stampa che e' in ordine sparso.
Non da nessuno errore ne warning,non so se ci sia un modo piu' "elegante" per andare a vedere se il vettore e' crescente o decrescente,senza usare le variabili i e k,ma non mi sono venute altre idee.
Avete qualche suggerimento?