Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [C++] Problema con funzioni di libreria

    ciao a tutti.. avrei un problemino molto semplice.. questa è una funzione che calcola la frequenza del lancio di due dadi.. non riesco a capacitarmi come sia possibile che il compilatore mi compili ed esegua correttamente questo file sebbene esso utilizzi i metodi time() e rand() che fanno parte delle librerie stdlib.h e time.h che non ho incluso
    il main è contenuto in un altro file e contiene anch'esso solo l'header iostream.. com'è possibile? aiutatemi


    codice:
    #include <iostream>
    using namespace std;
    
    
    //esercizio 7
    
    void es7() {
         
         int sum [11];
         
         for (int i=0; i<11; i  ) //inizializzo l'array a 0
             sum[i]=0;
             
         srand(time(0));
         
         for (int i=0; i<36000; i  )  //genero i numeri e immagazzino i dati
                sum [rand()  rand();
             
         for (int i=0; i<11; i  )
             cout <<  "Frequenza del " << i+2 << ": " << sum[i] << endl;
             
             system ("PAUSE");
    
    }

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Dubito molto che il compilatore compili questo codice o che lo esegua correttamente.
    Controlla bene i vari for.

  3. #3
    Originariamente inviato da shodan
    Dubito molto che il compilatore compili questo codice o che lo esegua correttamente.
    Controlla bene i vari for.
    errori di copiatura.. ecco il codice


    codice:
    void es7() {
         
         cout << "\n\n\nESERCIZIO 7" << endl;
    
         int sum [11];
         
         for (int i=0; i<11; i++) //inizializzo l'array a 0
             sum[i]=0;
             
         srand(time(0));
         
         for (int i=0; i<36000; i++)  //genero i numeri e immagazzino i dati
             ++ sum [rand()%6 + rand()%6];
             
         for (int i=0; i<11; i++)
             cout << "Frequenza del " << i+2 << ": " << sum[i] << endl;
             
             system ("PAUSE");
             
             
         }

  4. #4
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Presumo tu stia usando il gcc in una delle sue numerose incarnazioni. Se ricordo bene il gcc (il g++ in questo caso) inserisce in automatico i prototipi delle funzioni di libreria standard se trova una linea di codice che la richiede.
    Dovrebbe dare alcuni warning comunque.

  5. #5
    Originariamente inviato da shodan
    Presumo tu stia usando il gcc in una delle sue numerose incarnazioni. Se ricordo bene il gcc (il g++ in questo caso) inserisce in automatico i prototipi delle funzioni di libreria standard se trova una linea di codice che la richiede.
    Dovrebbe dare alcuni warning comunque.
    uso il dev
    nessun warning.. tutto pulito..
    l'iostream la devo per forza includere io, come si spiega??
    la time e la stdlib me la include automaticamente mentre invece l'iostream no..

    addirittura guarda cosa mi succede..
    il compilatore mi esegue correttamente questo codice senza nemmeno warnings
    codice:
    #include <iostream>
    int main () {
        srand(time( 0) );
    }
    invece mi segnala errori (non riconosce i metodi srand e time) in questo codice
    codice:
    int main () {
        srand(time( 0) );
    }




    ma srand e time non fanno parte di iostream

  6. #6
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Hai aperto l'header file e risalito la catena per escluderlo con sicurezza? Può darsi che l'include distribuito con il compilatore inserisca gli header appositi, per cui includendo iostream il compilatore trova la dichiarazione dei prototipi, ma dipende da compilatore a compilatore.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.