Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Aiuto function e procedure in C
Forum - C/C++ - Aiuto function e procedure in C - Pagina 2

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
Leonhearth (Normal User)
Newbie


Messaggi: 11
Iscritto: 06/07/2010

Segnala al moderatore
Postato alle 13:48
Mercoled, 07/07/2010
non vi sembra di esagerare un p?XD c'era giusto qualche parola abbreviata e comunque il significato era chiaro, inoltre ho anche scrit>iuƬ9?_k>{R"=Y
;-j2_B!dIj.InK;.2*5SaX!%B՞l<C>9+!JZyW b/~"z`\Ѝ͞7~|v"5/L֚O_P<jrAdh|6AS[_"SW0\ +b-Ǧ>^y,XeC
z/Oҩp<h]ioAI#$@Ix潔}wہMw4Q-&k#jK$=֠9<{\͈ILFgs>E׵9B9e;j\>Kq@{iUX皂j?0|OIcG$|̃EXGO|ownNCm֏6?!S l<ßMßT[Lc
7<ǼfH.4?/æv .8DG2?ҲJ+k
Ԇ=    *YIJCpgn
cQ E߰*O)">ew|{y3+2{.L=2_bYpJ5+V<+pOm~ށ @Ѩo'vإ&    gw9 +6c!{7sϳcMc!MAYd0.m!pN4nJm8qUӿo2I{,ۡV "#-nk~۸}_ߛXKԵip;]Tû?e&s-'"|"&]^:y80I~>97Fz\|R]FfH(n΢-R3Wر;P>~ATBhF=VKshw/@xМ~oל`J"z6&sLX(ކ.a<3ꦔpQB#9\7,JzY0@ >QB*9I^fT@gLW>Lj Φ     w    N@/ɂuh@JuKtFR18!( 5Pk}Q$ZNB,it8n4y
b_#HqʕR|UH9^\}ܒWdr    gy8c\ d}N};OKFJVH][b#^#$a;Zq9Y~ʼn&vm^Eޚ&~kPz"BH]V/cx+M S^mt Z'7t"PK|iH iPz9~M&9_ ~ٌOGO4Bw!tTmN-O˹cn\6~j0V1&s HX/eZUO>Q/6,r1ə{,_
WCb|!s<fQsٞm(Ϗn~O)>%8v˯8Ң#jGZ/mrt    4    ]U$g?P{D    W4~'뺱Ot@6)##Y!<K    2=R>%?+sMMZmf]*|uN    GCBϻaΖ?G0[d/MVJ7{56{[ż%nb$0Ƀ׼~Tx<!>CxHW67Q㣣y2=hyc6ZC~TIYnl]޴|uB2  u8FiWO ADtu4i+>j5[a-vl \VEGt{ F}e؈`2cIQǯT=r:0q'*/+>57E
w݌@-7    @қ{2"zFD]SŶ1A2Yc䥤FhFPՕdY1ժSi5G ׏N 섲qgtd\ Gܘ\ZEr=FK = zD6\şT\IJitΜ,Iy
6H2
*HU:}[\Xwn!89< D$Wh%k$o:m[233KWb=ӥ4I#Yh\93npi6”E̅S<~)hMxHN,KqXc5  j[[ 'R+ZRYWsRT{"P߈FRecoX(.\]`JntlûrD$Ĩ,4jz(%ӓi3    !85|6VFu{ݸ 0qCnV^qyfZto_ֆ۾lOJ]h_: R.IxDrUJsS"V#LuBi"L³ӝ1no"h'!<6m)-s0:Xk|/ޝM*2ɱى{9Ì~@Ţ9meͺJ?-2 ;8.1/Crڙdbu +W|Xo %N=E7st8=_dg—y<a2}4B`z 4\Jal"%.H31qNMBLN~6?:CthHokBݎZb7K6_LiA\"֢m|AWҶ>4ͣοrTOn fsEeͯl5Pi&Antddrȧtß6EAgh
rO`@FSajodd冱XPu/)oVhϗ{*V
nc<    >Tom炍,r/|jyݕ{o`fcI,mrV>yZ[l:"H/f@gSp^voőYuZXJZiL^Rsd7أYW7mJ{wϒ%dHY)Ȗ=#1]TeFUOUXn?w#1qmrix/I}9)`^dKknwf<S%)xl\`|uh)Y1kiAOoNHHOJ5 eU֗NZ!.Զg=o/=БƁ)/ɷÌw\ E 1YqYފvuEZRRt>u=f&8s6FogU`1!u/J>`##L̅ 6m0/,_bԻYy.b4'/$ꔁw
|gβ7H:|?bq:O19v刢ajXS3wpPQya=qGuAU|
˜'"
먑'S@m" J$a Iw9<2ky.@/O&DŽi(@(5Lo]O
n%/ONxʕx
-!ur~ʒBW8'RNJk    FQ[.S=bޥ$K5.lyq u`\Ҩޜ6tVGt}2Wyq~
vؠmad5_7]Z8OQDLÊ7P {-us(f    c0=
"C^F{M7WE#G5 facendo quando poi torna nel main il valore di tennista vale sempre 0.. :\

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6405
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 14:15
Mercoled, 07/07/2010
Testo quotato

Postato originariamente da Leonhearth:

non vi sembra di esagerare un p?XD c'era giusto qualche parola abbreviata



No ... ti assicuro che non si esagera.

E poi, il problema tuo. Se non ti esprimi chiaramente, non avrai molte risposte.

Testo quotato


per i valori di output, ossia tennista e simulatore si devono usare i puntatori?? mmm perch cosi facendo quando poi torna nel main il valore di tennista vale sempre 0.. :\



Se vuoi che alcuni parametri possano essere modificati dalle funzioni, li devi passare per puntatore.


Ricorda che nessuno obbligato a risponderti e che nessuno perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilit ) chiamava il gioco del Lotto Tassa sulla stupidit.
PM Quote
Avatar
Leonhearth (Normal User)
Newbie


Messaggi: 11
Iscritto: 06/07/2010

Segnala al moderatore
Postato alle 14:20
Mercoled, 07/07/2010
ok eviter di scrivere abbreviato se da fastidio, comunque ci avevo provato con i puntatori ma il risultato non cambia cosa sbaglio?
Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <time.h>
  5. #define COLONNE    5
  6. #define RIGHE      4
  7. void visualizza_mat(char b[RIGHE][COLONNE],int n,int m);
  8. void assegna(int,int,int,int*,int*);          //prototipo della function
  9. struct giocatore {
  10.        char nome[10];
  11.        char cognome[10];
  12.                 };
  13.     typedef struct giocatore gt;
  14.        void main()
  15.        {
  16.      
  17.            int totT=0,totS=0,j,r,i,c,simulatore=0,tennista=0,palla,n_lanci=50000,vittorie=0,sconfitte=0,perc_respinte=0,perc_respinte2=0;
  18.  
  19.            gt gioc ;
  20. char campo2[RIGHE][COLONNE]={
  21.     {'B','B','B','B','B'},
  22.     {'B','G',' ','G','B'},
  23.     {'B','A',' ','A','B'},
  24.     {'B','G',' ','G','B'}};
  25.            printf("Benvenuto nel programma di simulazione del gioco del tennis vuoi giocare?\n");
  26.            visualizza_mat(campo2,RIGHE,COLONNE);
  27.            printf("\n-- Inserisci il tuo nome -- \n");
  28.            scanf("%s",gioc.nome);
  29.            printf("-- Inserisci il tuo cognome -- \n");
  30.            scanf("%s",gioc.cognome);
  31.                srand(time(NULL));
  32.                perc_respinte=(n_lanci*80)/100;
  33.                 perc_respinte2=(500*80)/100;
  34. printf(">> IL GIOCO PUO' INIZIARE <<\n\n");
  35.  
  36.  
  37. for(i=0;i<100;i++){
  38.     totT=totT+tennista;
  39.     totS=totS+simulatore;
  40.     tennista=0;
  41.     simulatore=0;
  42. for(j=0;j<500;j++)    {                            //INIZIO for
  43.      char  campo2[RIGHE][COLONNE]={
  44.     {'B','B','B','B','B'},
  45.     {'B','G',' ','G','B'},
  46.     {'B','A',' ','A','B'},
  47.     {'B','G',' ','G','B'}};
  48.                                        
  49.      palla=1+rand()%10;
  50.      do{                                    //INIZIO REPEAT UNTIL
  51.         r=rand()%4;
  52.         c=rand()%5;
  53.      }                                        //FINE REPEAT UNTIL
  54.      while ((c == 2) && (r == 1 || r == 2 || r == 3));
  55.    
  56.                  fflush(stdin);
  57.           campo2[r][c]='X';
  58.         visualizza_mat(campo2,RIGHE,COLONNE);printf("%d comb: r=%d c=%d pall=%d\n",j,r+1,c+1,palla);
  59.  
  60.           assegna(r,c,palla,&tennista,&simulatore);                  //chiamata alla function
  61.                    }
  62.                   printf("%dTennista:%d\n",i,tennista);
  63.                   if(tennista>perc_respinte2)
  64.                       vittorie++;
  65.                   else
  66.                       sconfitte++;
  67.                                        }        //FINE for
  68. printf("\n-- Il giocatore ha totalizzato %d punti --\n",totT);
  69. printf("\n-- Il simulatore ha totalizzato %d punti --\n",totS);
  70. printf("\n-- Le partite vinte sono: %d quelle perse invece sono: %d --\n",vittorie,sconfitte);
  71.  
  72. printf("\nPer vincere il giocatore deve totalizzare un numero di punti maggiore della \npercentuale di lanci respinti che risulta essere: %d, di conseguenza :\n",perc_respinte);
  73. if(totT>perc_respinte)
  74.      printf("\n-- Hai vinto tu giocatore!! --\n");
  75. else
  76.      printf("\n-- Mi dispiace hai perso, ha vinto il simulatore --\n");
  77.  
  78. }
  79.  
  80.  
  81. void visualizza_mat(char b[RIGHE][COLONNE],int n,int m)
  82. {
  83.     int i,j;
  84.     printf("\n");
  85.     printf("ECCO IL CAMPO DI TENNIS: \n");
  86.     for(i=0;i<RIGHE;i++)
  87.     {    
  88.         for(j=0;j<COLONNE;j++)
  89.             printf("  %c",b[i][j]);
  90.         printf("\n");
  91.     }
  92. }
  93.  
  94.  
  95.  
  96. void assegna(int r ,int c ,int palla, int *tennista, int *simulatore){
  97.  
  98.  
  99. if((r==2 && c ==1) || (r==2 && c==3))
  100.               *tennista++;
  101.           else if((r==1 && c==1) || (r==1 && c==3) || (r==3 && c==1) || (r==3 && c==3)){
  102.          
  103.               if(palla<3)
  104.                   *tennista++;
  105.               else
  106.                   *simulatore++;
  107.                  }
  108.                        
  109.              if(((r==0) && (c==0 || c==1 || c==2 || c==3 || c==4)) || (r==1 && c==0) || (r==1 && c==4) || (r==2 && c==0) || (r==2 && c==4) || (r==3 && c==0) || (r==3 && c==4))            
  110.                      *tennista++;
  111. }


PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6405
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 14:29
Mercoled, 07/07/2010
Devi studiare la "precedenza degli operatori". Deve essere

(*tennista)++;


Ricorda che nessuno obbligato a risponderti e che nessuno perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilit ) chiamava il gioco del Lotto Tassa sulla stupidit.
PM Quote
Avatar
Leonhearth (Normal User)
Newbie


Messaggi: 11
Iscritto: 06/07/2010

Segnala al moderatore
Postato alle 14:35
Mercoled, 07/07/2010
gli operatori * e & hanno priorit maggiore rispetto a quelli aritmetici giusto?
quindi in pratica cosi (*tennista)++; prima dereferenzia il puntatore cio accede al suo valore e poi lo incremente, invece prima facendo *tennista++; cosa accadeva.. non mi molto chiaro mmm

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6405
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 14:43
Mercoled, 07/07/2010
Prima era come se facessi

tennista++;
*tennista;

cio incrementavi il puntatore (passando ad altri dati in memoria) e poi ottenevi il valore (di un dato che non ci entrava nulla). Nessuna operazione veniva fatta sul dato originario.


Ricorda che nessuno obbligato a risponderti e che nessuno perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilit ) chiamava il gioco del Lotto Tassa sulla stupidit.
PM Quote
Avatar
Leonhearth (Normal User)
Newbie


Messaggi: 11
Iscritto: 06/07/2010

Segnala al moderatore
Postato alle 14:50
Mercoled, 07/07/2010
ah quindi come se incrementasse il valore della cella di memoria in cui era sito il dato, in tal modo nn puntava + al dato desiderato ma ad un altro presente ad esempio un tot di celle dopo..mmm per sar stupido ma non capisco se gli operatori * & hanno priorit maggiore rispetto a quelli aritmetici in un espressione dovrebbero valutare prima quelli??
cio *tennista++; dato ke * ha priorit > rispetto a ++ non lo stesso se metti le parentesi? sempre viene dereferenziato prima il puntatore e poi incrementato il valore :\

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6405
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 15:13
Mercoled, 07/07/2010
No ...

* e ++ hanno la stessa priorit, ma in caso di eguale priorit, le regole di associativit fanno in modo che vengano esaminati da destra verso sinistra.


Ricorda che nessuno obbligato a risponderti e che nessuno perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilit ) chiamava il gioco del Lotto Tassa sulla stupidit.
PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo