Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    29

    Media di numeri casuali [C++]

    Mi servirebbe un programma in C++ che chieda un intero N, generi casualmente N tiri di dado, e ne calcoli la media, il totale, etc.
    Avete degli esempi già fatti (non per forza uguali a come serve a me, ci penso io ad adattarli)? Voi come lo fareste?

    Grazie
    Elric

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    17
    è da almeno 4 anni che non vedo il c++, però più o meno (soprattutto la logica) è questo, non ricordo bene la dicitura esatta, magari ti riesce a dare una mano:


    a=0 ::: numero di tiri
    c=0 ::: valore del tiro
    a= :::chiedi il valore
    if (a=!0)
    c= random(1;6) :::: non ricordo bene la funzione
    d=c+c
    a=a-1
    end if

    somma dei lanci =[d]
    media dei lanci =[d]/a



    ciao

  3. #3
    che tradotto in C diventa:
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    int main()
    {
        float m=0, s=0;
        int n=0, i;
    
        do
        {
            printf("Inserisci un numero [compreso tra 2 e 10]: ");
            scanf("%d", &n);
        } while(n<2 || n>10);
            
        srand((unsigned)time(NULL));
        
        for(i=0; i<n; i++)
        {
            m=1+rand()%100;
            printf("NUMERO %.2d == %.2d\n", i+1, (int)m);
            s+=m; 
        }
        
        printf("SOMMA == %.2d\n", (int)s);
        printf("MEDIA == %.1f\n", (float)s/n);
              
        system("pause");      
        return 0;
    }
    p.s. il porting in C++ fallo tu
    ...Terrible warlords, good warlords, and an english song

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    29
    Grazie ragazzi, ma vorrei capire dove sbaglio...
    questo è il programma, non capisco perchè non va:
    #include <iostream>
    #include <cstdlib>
    #include <ctime>
    #include <algorithm>
    #include <cmath>
    #include <vector>

    using namespace std;



    void rand_seed()
    {
    int seed = static_cast<int>(time(0));
    srand(seed);
    }

    int rand_int(int a, int b)
    {
    return a + rand() % (b - a + 1);
    }

    int main()
    {
    vector<double> lancio(3);
    rand_seed();
    for (int i = 0; i <= 2; i++)
    {
    int lancio[i] = rand_int(1, 6);

    }
    int media = lancio[1] + lancio[2] + lancio[3] /3;
    cout << media << "\n";
    return 0;
    }

    Dove sto sbagliando?

    Grazie di nuovo
    Elric

  5. #5
    Utente di HTML.it L'avatar di Kian
    Registrato dal
    Oct 2003
    Messaggi
    31
    Ciao Elric...
    Lo sai che è tanto che non tocco il c++ però così modificato gira.
    Vediamo se ho capito i tuoi errori...
    1.Hai incluso librerie inutili.
    2.Puoi dichiarare semplicemente un vettore come ho fatto io:
    "float lancio [3]"
    3.Le paretesi quando dichiari la media!Altrimenti divide solo l'ultimo
    4.Ricorda!Un vettore di 3 elementi ha questi indici 0-1-2 e non 1-2-3!
    5."aspetta" è un artificio che ho usato io per fermare la finestra dopo l'elaborazione.Si aspetta che tu inserisca un numero e poi prema INVIO.Ma non è un sistema in genere da usare...Ne esistono di migliori ma ora non me li ricordo.
    Spero di averti aiutato.
    Ciao

    #include <iostream>
    #include <algorithm>

    using namespace std;



    void rand_seed()
    {
    int seed = static_cast<int>(time(0));
    srand(seed);
    }

    int rand_int(int a, int b)
    {
    return (a + rand() % (b - a + 1));
    }

    int main()
    {
    int aspetta;
    float lancio[3];
    rand_seed();
    for (int i = 0; i <= 2; i++)
    {
    lancio[i] = rand_int(1, 6);

    }
    cout << lancio[0] << " " << lancio[1] << " " << lancio [2] << endl;
    float media = (lancio[0] + lancio[1] + lancio[2])/3;
    cout << media << "\n";
    cin >> aspetta;
    return 0;
    }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.