Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 35

Discussione: problema con for in C

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    255

    problema con for in C

    Questo programma lancia 3 dadi x 3 volte e visualizza i risultati in questo modo:
    1 lancio dado1=2
    2 lancio dado1=3
    3 lancio dado1=4
    1 lancio dado2=4
    2 lancio dado2=5
    3 lancio dado2=6
    1 lancio dado3=2
    2 lancio dado3=5
    3 lancio dado3=2

    io vorrei invece ke facesse così:
    1 lancio dei 3 dadi= 2,4,2
    2 lancio dei 3 dadi= 3,5,5
    3 lancio dei 3 dadi= 4,5,2
    4 lancio dei 3 dadi= 2,4,2

    e alla fine vorrei ke mettesse in ordine le combinazioni che + sono uscite...penso ke dovrei fare un if qui!

    #include <stdio.h>
    #include <stdlib.h>
    void main()
    {
    char *pszTitolo="a";
    int nFacceDado;
    int dado1;
    int dado2;
    int dado3;
    int i;
    int uno =0;
    int due =0;
    int tre =0;
    int quattro =0;
    int cinque =0;
    int sei = 0;

    printf("esercizio:\n%s\n",pszTitolo);
    for (i=0;i<strlen(pszTitolo);i++)
    {
    printf("-");
    printf("\n");



    for (dado1=1;dado1<=3;dado1++)
    {
    nFacceDado=1+rand()%6;
    printf("%d-simo numero lancio dado1=%d\n",dado1,nFacceDado);
    }
    for (dado2=1;dado2<=3;dado2++)
    {
    nFacceDado=1+rand()%6;
    printf("%d-simo numero lancio dado2=%d\n",dado2,nFacceDado);
    }
    for (dado3=1;dado3<=3;dado3++)
    {
    nFacceDado=1+rand()%6;
    printf("%d-simo numero lancio dado3=%d\n",dado3,nFacceDado);
    }
    }
    }

  2. #2
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012
    Edita e metti tutto tra [code ] e [/ code]
    Poi cercherò di capire... :quipy:

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    255
    questa è la porzione di codice da modificare,grazie

    #include <stdio.h>
    #include <stdlib.h>
    void main()
    {
    char *pszTitolo="a";
    int nFacceDado;
    int dado1;
    int dado2;
    int dado3;

    for (dado1=1;dado1<=3;dado1++)
    {
    nFacceDado=1+rand()%6;
    printf("%d-simo numero lancio dado1=%d\n",dado1,nFacceDado);
    }
    for (dado2=1;dado2<=3;dado2++)
    {
    nFacceDado=1+rand()%6;
    printf("%d-simo numero lancio dado2=%d\n",dado2,nFacceDado);
    }
    for (dado3=1;dado3<=3;dado3++)
    {
    nFacceDado=1+rand()%6;
    printf("%d-simo numero lancio dado3=%d\n",dado3,nFacceDado);
    }

  4. #4
    Ecco qui!

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    void main()
    {
    	char *pszTitolo="a";
    	int lancio;
    	int i;
    	int dado1;
    	int dado2;
    	int dado3;
    
    	printf("esercizio:\n%s\n",pszTitolo);
    	for (i=0;i<strlen(pszTitolo);i++)
    		{
    		printf("-");
    		printf("\n");
    		}
    
    	for (lancio=1;lancio<=4;lancio++)
    		{
    		dado1=1+rand()%6;
    		dado2=1+rand()%6;
    		dado3=1+rand()%6;
    		printf("%d-simo numero lancio, dadi: %d,%d,%d\n",lancio,dado1,dado2,dado3);
    		}
    }
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    255
    scusa ora come posso sommare il punteggio dei 3 dadi?
    es: 5,5,6 =16

  6. #6
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012
    Anche io ho provato a fare il programma e questo è il risultato:

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    #define DADI 3
    #define VOLTE 3
    
    void main() 
    { 
    	int i,j, n;
    	int frequenza[6] = {0,0,0,0,0,0};
    
    	for(i=0; i<DADI; i++) {
    		printf("Lancio %d dei %d dadi = ", i + 1, DADI);
    		for(j = 0; j<VOLTE - 1; j++) {
    			n = (rand() % 6) + 1;
    			frequenza[n-1]++;
    			printf("%d, ", n);
    		}
    		// Senza virgola
    		n = rand() % 6 + 1;
    		frequenza[n-1]++;
    		printf("%d\n", n);
    	}
    
    	printf("Frequenze:\n");
    	for(i=0; i<6; i++) {
    		printf("%d: %d volte\n", i+1, frequenza[i]);
    	}
    }

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    255
    grazie,ma nn volevo ke mi faccesse il conteggio di tutte le volte ke compare un numero,ma la somma dei punteggi che si sono presentati più frequentemente

    es. 4,5,6 =15
    5,6,3 =14
    6,6,3 =15

    frequenza: 15 è uscito 2 volte
    14 è uscito 1 volta

  8. #8
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012
    Ecco il code:
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    #define DADI 3
    #define VOLTE 3
    
    void main() 
    { 
    
    	srand(time(NULL));
    	int i,j,k, n, somma = 0;
    	int frequenza[DADI][2], totf = 0;
    
    	for(i=0; i<DADI; i++, somma = 0) {
    		printf("Lancio %d dei %d dadi = ", i + 1, DADI);
    		for(j = 0; j<VOLTE - 1; j++) {
    			n = (rand() % 6) + 1;
    			somma += n;
    			printf("%d, ", n);
    		}
    		// Senza virgola
    		n = rand() % 6 + 1;
    		somma += n;
    		printf("%d\nSomma: %d\n", n, somma);
    
    		// Trova la frequenza
    		for(k=0; k<totf; k++) {
    			if(frequenza[k][0] == somma) {
    				frequenza[k][1]++;
    				break;
    			}
    		}
    		// Se non c'era già una somma così:
    		if(k==totf) {
    			frequenza[k][0] = somma;
    			frequenza[k][1] = 1;
    			totf++;
    		}
    
    	}
    
    	printf("Frequenze:\n");
    	for(i=0; i<totf; i++) {
    		printf("%d: %d volt%c\n", frequenza[i][0], frequenza[i][1], frequenza[i][1] > 1 ? 'e' : 'a');
    	}
    }
    Se hai domande chiedi pure!
    (E' importante che tu lo capisca completamente, il copiaincolla non vale! :tongue: )


  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    255
    #include <stdio.h>
    #include <stdlib.h>
    void main()
    {
    char *pszTitolo="a";
    int lancio;
    // int i;
    int seed;
    int dado1;
    int dado2;
    int dado3;
    int somma;
    // int uno=0;
    // int due=0;
    int tre=0;
    int quattro=0;
    int cinque=0;
    int sei=0;
    int sette=0;
    int otto=0;
    int nove=0;
    int dieci=0;
    int undici=0;
    int dodici=0;
    int tredici=0;
    int quattordici=0;
    int quindici=0;
    int sedici=0;
    int diciasette=0;
    int diciotto=0;

    printf("esercizio:\n%s\n",pszTitolo);

    // for (i=0;i<strlen(pszTitolo);i++)
    printf("-");
    printf("\n");
    scanf("%d",&seed);
    srand(seed);


    for (lancio=1;lancio<=3;lancio++)
    {
    dado1=1+rand()%6;
    dado2=1+rand()%6;
    dado3=1+rand()%6;

    //if (somma == 1)
    //uno++;
    //if (somma == 2)
    //due++;
    if (somma == 3)
    tre++;
    if (somma == 4)
    quattro++;
    if (somma == 5)
    cinque++;
    if (somma == 6)
    sei++;
    if (somma == 7)
    sette++;
    if (somma == 8)
    otto++;
    if (somma == 9)
    nove++;
    if (somma == 10)
    dieci++;
    if (somma == 11)
    undici++;
    if (somma == 12)
    dodici++;
    if (somma == 13)
    tredici++;
    if (somma == 14)
    quattordici++;
    if (somma == 15)
    quindici++;
    if (somma == 16)
    sedici++;
    if (somma == 17)
    diciasette++;
    if (somma == 18)
    diciotto++;


    somma= dado1 + dado2 + dado3;
    printf("%d-simo numero lancio, dadi= %d,%d,%d\n la somma è:%d\n",lancio,dado1,dado2,dado3,somma);
    }

    // printf ("\nSomma di 1 è uscita: %d", uno);
    // printf ("\nSomma di 1 è uscita: %d", due);
    printf ("\nSomma di 3 è uscita: %d", tre);
    printf ("\nSomma di 4 è uscita: %d", quattro);
    printf ("\nSomma di 5 è uscita: %d", cinque);
    printf ("\nSomma di 6 è uscita: %d", sei);
    printf ("\nSomma di 7 è uscita: %d", sette);
    printf ("\nSomma di 8 è uscita: %d", otto);
    printf ("\nSomma di 9 è uscita: %d", nove);
    printf ("\nSomma di 10 è uscita: %d", dieci);
    printf ("\nSomma di 11 è uscita: %d", undici);
    printf ("\nSomma di 12 è uscita: %d", dodici);
    printf ("\nSomma di 13 è uscita: %d", tredici);
    printf ("\nSomma di 14 è uscita: %d", quattordici);
    printf ("\nSomma di 15 è uscita: %d", quindici);
    printf ("\nSomma di 16 è uscita: %d", sedici);
    printf ("\nSomma di 17 è uscita: %d", diciasette);
    printf ("\nSomma di 18 è uscita: %d\n", diciotto);


    }


    Xkè nn mi somma l'ultimo dado lanciato?Dove sbaglio?

  10. #10
    Utente di HTML.it L'avatar di infinitejustice
    Registrato dal
    Nov 2001
    residenza
    Barcelona
    Messaggi
    772
    if if if if if ...esiste anche lo switch()
    Live fast. Troll hard.
    Pythonist | Djangonaut | Puppeteer | DevOps | OpenStacker | Lost in malloc
    Team Lead @Gameloft Barcelona

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.