#include <stdio.h>
#include <stdlib.h>
//Realizzare un programma che richieda all’utente n interi, e visualizzi il numero di volte in cui sono stati eventualmente immessi i valori 10, 100 e 1000.
//Essendo un esercizio lievemente complicato proviamo ad eseguire i sottostanti passaggi, magari verrà corretto.
//Passaggio 1: Introduciamo la domanda "inserisci tot. elementi (n)". Tali elementi devono rientrare nell'array a[]
//Passaggio 2: Poniamo la condizione, attraverso il costrutto if, che siamo obbligati a scrivere solo valori come 10,100 e 1000. In caso di valori diretti, attraverso break o continue o exit (VEDREMO) interrompiamo il programma e segnaliamo un errore
//Passaggio 3: Dopo aver introdotto tali n elementi dobbiamo ordinarli attraverso il bubblesort.
//Passaggio 4: Come ultimo passaggio sfruttiamo l'if per creare dei contatoti. Ogni volta che il programa trova, ad esempio, un 10 il contatore o accumulatore viene aggiornato.
main()
{
int n; //Nr. di elementi che compongono l'array
int a[n];
int i; //Variabile primo ciclo for
int el; //Variabile elementi interni array a;
int j,k,temp; //Variabili utili per il bubblesort
printf ("\t\tBenvenuto!\t\t\n");
printf ("Inserisci il numero n di elementi che devono far parte dell'array: ", n);
scanf ("%d", &n);
printf ("\nIl numero di elementi che compongono l'array a e': a[%d]", n);
//Condizione passaggio nr.2.
printf ("\nAdesso dobbiamo decidere quali sono questi elementi interni all'array\n");
printf ("\nUtilizziamo il ciclo for.");
for (i=0; i<n; i++)
{
printf ("\nInserisci l'elemento %d dell'array a: ", i,a);
scanf ("%d", &a);
if (a != 10 && a != 100 && a != 1000)
{
printf ("ERRORE!");
exit(1); //In questo caso l'exit è molto importante. Se viene individuata una incoerenza nella scelta degli elementi dell'array il programma deve interropersi. Con exit(1) (DOVE 1 STA PER "ERRORE") si risolve tale problema.
}
else
{
printf ("CORRETTO!");
}
}
//Passaggio nr.3
//Sfruttiamo le variabili j,k e temp per il bubblesort
for (j=0;j<n;j++)
{
for(k=0;k<n-j-1;k++)
{
if (a[k]>a[k+1]) //Si determina così la crescenza o la decrescenza
{
temp = a[k];
a[k] = a[k+1];
a[k+1] = temp;
}
}
}
for (j=0;j<n;j++) //RICORDATI che bisogna usare la variabile esterna del ciclo for del bubblesort
{
printf ("\n%d\n", a[j]);
}
//Passaggio nr.4
//Uso degli if per la creazione di contatori
for (a=0; a<n; a++)
{
if (a = 10)
{
printf ("%d", a++);
}
else if (a[i] = 100)
{
printf ("%d", a[i]++);
}
else if (a[i] = 1000)
{
printf ("%d", a[i]++);
}
}
return 0;
}
Salve a tutti. Avrei un problema riguardo gli ultimi passaggi. Dopo aver scelto n elementi che devono comporre l'array ed aver posto la condizione che tali elementi devono essere uguali a 10,100 o 1000 e dopo averli ordinati col bubblesort vorrei creare una sorta di contatore. Vorrei dire al programma. Vai al primo elemento dell'array, se è uguale a 10 somma 1 al primo contatore. Se è uguale a 100 somma 1 al secondo contatore ecc ecc...In codice come lo devo scrivere?