PDA

Visualizza la versione completa : Passaggio valore array [C++]


giovannimarino
28-07-2011, 22:04
Salve, vorrei creareun software che lanciando due dadi l'utente dovrà tentare di indovinare la somma....i valori dei dadi avverrà tramite la funzione rand ma volendomi esercitare con le funzioni vorrei tentare di dividere il software in 3 funzioni: 1) generazione valore dadi 2)somma dadi 3) confronto con input utente.....per i due dadi volevo usare un array...per esercitarmi pure in quello purtroppo non so come passare i valori dalla funzione generazione a quella si somma....dato che la somma prende i valori dei dati....ringrazio in anticipo

alka
29-07-2011, 14:20
Prova a riportare il codice scritto sino a ora, e a documentarsi su quanto chiedi tentando di scrivere il codice relativo: qualora ti trovassi in difficoltà, o in caso di errori e comportamenti anomali, descrivi quello che accade e discuti possibili soluzioni con gli altri utenti.

Così come hai posto la domanda non è corretto, perché gli utenti devono farsi carico del problema per scrivere il codice al posto tuo. :)

giovannimarino
01-08-2011, 18:44
si hai ragione...io sono alle prime armi...ma sono tipo che se non faccio pratica non imparo una cosa...ho letto teoria dal deitel...quì c'è il codice spero in una correzione non troppo severa! :spy:


#include <iostream>
#include <cstdlib>
using namespace std;
void generazionevalori(int valori[1])
{ for(int j=0;j<1;j++)
valori[j]=(1+rand()%6); }
int main()
{
generazionevalori(int dadi[1]);

cout<<"" ;
return 0; }

oregon
01-08-2011, 18:45
Originariamente inviato da giovannimarino
quì c'è il codice

:bhò:

giovannimarino
01-08-2011, 18:50
pensavo di averlo copiato...comq dovrei far passare quell'array a un'altra funzione che somma gli elementi degli array

oregon
01-08-2011, 18:53
Originariamente inviato da giovannimarino
pensavo di averlo copiato...comq dovrei far passare quell'array a un'altra funzione che somma gli elementi degli array

Il codice non è per nulla chiaro ... cominciamo dal main, messo un po' meglio



int main()
{
generazionevalori(int dadi[1]);

cout<<"" ;

return 0;
}


Se devi passare un array dal main alla funzione generazionevalori, prima di tutto l'array lo devi dichiarare nel main stesso ma non l'hai fatto.

Inoltre, indica con una costante il numero massimo di elementi dell'array.

giovannimarino
01-08-2011, 19:11
int main()
{
const int k=1;
int dadi[k];
generazionevalori(dadi[k]);
cout<<"" ;
return 0;
}

giusto così? poi la funzione come la modifico?

void generazionevalori(int valori[1])
{
for(int j=0;j<1;j++)
valori[j]=(1+rand()%6);
}

il cout nel main è stato inserito perchè vorrei mandare in output i due valori dell'array

clynamen
01-08-2011, 19:28
Puoi definire k prima della dichiarazione della funzione e scrivere quindi

void generazionevalori(int valori[k]);
for(int j=0;j<k;j++)


Inoltre rand deve essere inizializzato
http://www.cplusplus.com/reference/clibrary/cstdlib/rand/

oregon
01-08-2011, 19:39
Originariamente inviato da giovannimarino
il cout nel main è stato inserito perchè vorrei mandare in output i due valori dell'array

Due valori dell'array? Perché ne dichiari solo 1 ?

giovannimarino
01-08-2011, 20:43
intendo gli elementi dell'array....cioè i due dadi...la funzione generazionevalori assegna il valore ai due elementi dell'array...poi questi due vorrei che si mostrino col cout e poi passare i due valori a una seconda funzione somma che li somma...e poi un cout della seconda funzione....

Loading