PDA

Visualizza la versione completa : Aiuto! Codice per sorteggiare 40 numeri da 10 a 20 e ordinarli dal piu uscito al meno uscito


schiaro98
11-03-2014, 13:13
#include <stdio.h>
#include <stdlib.h>


int main()
{
int c[10], d[40], h, x, b, z, g, a, p, i, j;
srand((unsigned) time(NULL));
for(h=0; h<10; h++){c[h]=0;}
for(x=0; x<40; x++)
{
d[x]=rand()%10+10;
printf("%i\n", d[x]);
g=d[x]-10;
c[g]++;
};
for(i=0; i<10; i++)
{for(j=0; j<9; j++)


{
if(c[i]>c[j])
{ p=c[i];
c[i]=c[j];
c[j]=p;}
}
}
for(z=0; z<10; z++)
{b=z+10;
printf("%i", b);
for(a=0; a<c[z]; a++)
{printf("*");}
printf(" \n");
}
system("pause");
return 0;
}

Dove sta l'errore????

oregon
11-03-2014, 13:33
Dove sta l'errore? Ma è un premio a quiz ?

Perché non ci dici tu che problema hai e in quale fase o linea lo incontri?

LeleFT
11-03-2014, 13:35
Dove sta l'errore????

Beh... se prima tu non dici quale errore ottieni, se lo ottieni in compilazione o esecuzione, se ottieni risultati sbagliati e nel caso quali risultati ottieni... che pretendi?

Non si può obbligare gli utenti a copiare il tuo codice, incollarlo in un loro progetto, compilarlo ed eseguirlo per cercare di scoprire se vi sono errori, dove sono, quali sono, ecc. Tutte queste cose le devi fare tu e sei sempre tu che devi dare TUTTE le informazioni necessarie affinchè gli utenti possano cercare di capire da dove nasca l'errore.

Non hai nemmeno detto se stai sviluppando per Windows/Linux/Mac, né quale compilatore usi...


Ciao. :ciauz:

Alex'87
11-03-2014, 17:37
Ma poi... tutte le variabili h, x, b, z, g, a, p... Cosa vogliono dire? Qual è la loro semantica?

schiaro98
13-03-2014, 13:05
Allora intanto compilo in C su windows con codeblocks, non mi da errori ma eseguendo il programma i numeri non sono in ordine, ho capito che devo eseguire una matrice ma non so come fare a inizializzarla. Nello specifico mi da i 10 numeri come dovrebbero essere ma non li allinea con le stelline.(compilo con GNU GCC compiler)

oregon
13-03-2014, 13:34
"Eseguire un matrice" cosa vuol dire?

Comunque, il problema è che l'indice del vettore lo usi per indicare il numero e il valore lo usi per le occorrenze

indice 1 -> valore 3 vuol dire che l' 11 appare 3 volte

Ma se ordini il vettore, gli indici rimangono fissi e i valori cambiano e così salta l'associazione tra indice e valore.

schiaro98
18-03-2014, 12:33
#include <stdio.h>
#include <stdlib.h>


int main()
{
int c[2][10], d[40], h, x, z, g, a, p, i, j, l, e;
srand((unsigned) time(NULL));
for(h=0; h<10; h++){c[1][h]=0;}
for(x=0; x<40; x++)
{
d[x]=rand()%10+10;
printf("%i\n", d[x]);
g=d[x]-10;
c[1][g]++;
};
for(e=0; e<10; e++)
{l=e+10;
c[0][e]=l;}
for(i=0; i<10; i++)
{
for(j=0; j<9; j++)
{
if(c[1][i]>c[1][j])
{ p=c[1][i];
c[1][i]=c[1][j];
c[1][j]=p;
e=c[0][i];
c[0][i]=c[0][j];
c[0][j]=e;
}
}
}


for(z=0; z<10; z++)
{ printf("%i ", c[0][z]);


for(a=0; a<c[1][z]; a++)
{printf("*");}
printf(" \n");
}
system("pause");
return 0;
}

oregon
18-03-2014, 13:47
E questo codice cosa vuol dire? Hai risolto? Non hai risolto?

Scrivere qualche riga di chiarimento era troppo?

Loading