Oppure

Loading
22/01/10 12:22
pippo87
qualcuno mi aiuta con un programmino in C?è urgentissimo

EDIT by HeDo: Infranti diversi punti del regolamento:

# Inutile scrivere "ho un problema", "problema urgente", in quanto tutti i
problemi sono allo stesso livello, e non acquisite priorità sugli altri semplicemente scrivendolo nel titolo o nel testo.

- Esporre in maniera più chiara e concisa possibile, senza limiti di
parole/codici/informazioni, il problema/richiesta del topic. Sottolineo
come la maggiore quantità di informazioni inserita nella risposta influenzi
la velocità di risposta degli esperti del forum e la pertinenza di tali
risposte al fine di trovare la soluzione.

- Se inserite del codice, abbiate la premura di commentarlo adeguatamente.
Ricordatevi che lo leggeranno molte persone e per facilitare la
comprensione dovrà essere il più chiaro possibile.

- Il codice inguardabile e senza un'apparente logica suscita un forte
desiderio di premere "delete topic", ma siccome ci siamo passati tutti ed è
una fase inevitabile della carriera di programmatore, oltre ai commenti,
scrivete a parole COSA VOLEVATE FARE.

Il prossimo thread con ANCHE UN SOLO punto infranto verrà immediatamente cancellato senza preavviso.


Ultima modifica effettuata da HeDo 22/01/10 20:38
aaa
22/01/10 12:31
NickoMaiden
carissimo pippo87 aiutare a fare un programma non vuol dire fartelo di sana pianta :)
non penso che qualcuno ti aiuterà perchè prima di tutto non hai scritto cosa vuoi fare esattamente. Affari Tuoi? non è detto che ogni persona al mondo conosca il programma quindi ti tocca descrivere le varie fasi del programma e buttare giu uno schizzo in c++ , quando hai problemi su qualcosa chiedi che questo forum è pieno di esperti che ti sapranno rispondere
se il tuo topic è stato chiuso vuol dire che c'è un Motivo, non credi? è inutile aprirne altri 50 con il contenuto peggio del primo
Ultima modifica effettuata da NickoMaiden 22/01/10 12:32
aaa
22/01/10 12:56
pippo87
ma io il codice lo ho gia fatto...devo correggere un punto perchè nell'eseguibile non fa cio che vorrei
aaa
22/01/10 13:01
NickoMaiden
perfetto, però se non lo posti come pensi che ti possiamo dare una mano?
posta tutto il codice e vediamo dov'è il problema
aaa
22/01/10 13:25
pippo87
#include<stdlib.h>
#include<stdio.h>
#include<iostream>
#include<ctime>
#define num_pacchi 20
using namespace std;


int Gioca(char nome[], int pacco);       
int offerta(char nome[], int pacco);                   
int Apertura_Pacco();                             
int Fine();                            


char nome[20];
int pacco,fare_offerta= 0;
                    
int pacchi_rimanenti[20]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};

struct pa
{ 
  int tipo;
  int contenuto_pacco;                 //{Pacchi}
  char *premio;
}p[num_pacchi];


int cambio_finito=0;
int main () {
    
    system("color 34");
    srand(time(NULL));
    int scelta;
p[0].tipo=2;
p[0].contenuto_pacco=-1;
p[0].premio="aaaaaa";
p[1].tipo=2;
p[1].contenuto_pacco=-1;
p[1].premio="bbbbb";
p[2].tipo=2;
p[2].contenuto_pacco=-1;
p[2].premio="ccccc";
p[3].tipo=2;
p[3].contenuto_pacco=-1;
p[3].premio="ddddd";
p[4].tipo=2;
p[4].contenuto_pacco=-1;
p[4].premio="eeeee";
p[5].tipo=1;
p[5].contenuto_pacco=1;
p[5].premio="1 euro";
p[6].tipo=1;
p[6].contenuto_pacco=5;
p[6].premio="5 euro";
p[7].tipo=1;
p[7].contenuto_pacco=10;
p[7].premio="10 euro";
p[8].tipo=1;
p[8].contenuto_pacco=20;
p[8].premio="20 euro";
p[9].tipo=1;
p[9].contenuto_pacco=100;
p[9].premio="100 euro";
p[10].tipo=1;
p[10].contenuto_pacco=500;
p[10].premio="500 euro";
p[11].tipo=1;
p[11].contenuto_pacco=1000;
p[11].premio="1000 euro";
p[12].tipo=1;
p[12].contenuto_pacco=5000;
p[12].premio="5000 euro";
p[13].tipo=1;
p[13].contenuto_pacco=10000;
p[13].premio="10000 euro";
p[14].tipo=1;
p[14].contenuto_pacco=20000;
p[14].premio="20000 euro";
p[15].tipo=1;
p[15].contenuto_pacco=50000;
p[15].premio="50000 euro";
p[16].tipo=1;
p[16].contenuto_pacco=75000;
p[16].premio="75000 euro";
p[17].tipo=1;
p[17].contenuto_pacco=100000;
p[17].premio="100000 euro";
p[18].tipo=1;
p[18].contenuto_pacco=250000;
p[18].premio="250000 euro";
p[19].tipo=1;
p[19].contenuto_pacco=500000;
p[19].premio="500000 euro";

     printf("\t\t****************************************************\n");
   printf("\t\t*                                                  *\n");  
   printf("\t\t*            Benvenuti ad AFFARI TUOI              *\n");
   printf("\t\t*                                                  *\n"); 
   printf("\t\t****************************************************\n\n"); 
    printf( "1 - Gioca\n\n2 - Esci\n\n");
    scanf("%d",&scelta);
    do {
    switch (scelta) {
           case 1:
                system("cls");
                printf( "\n\nInserisci il tuo nome: ");
                scanf("%s",&nome);
                while (pacco < 1 || pacco > 20)
                {
                printf( "\n\nInserisci il numero del pacco che vuoi(1-20): ");
                scanf("%d",&pacco);
                }
                Gioca(nome,pacco);
                
                break;
           case 2:
                exit (1);
                }
           }
           while (scelta < 1 || scelta > 3);
}

int Gioca(char nome[], int pacco) {//fare_offerta++;
    
    Fine();
    
    if ((fare_offerta==3 || fare_offerta==6 || fare_offerta==9 || fare_offerta==12 || fare_offerta==15 || fare_offerta==18))
     {
     offerta(nome, pacco);
     }
   /* if(fare_offerta==19)
    Fine();*/
    int chiama;        //Chiamata Pacco
    system("cls");
    printf( "Pacchi rimasti: ");
    for (int x = 0; x < 20; x++) {          //Mostra Pacchi Rimasti
        if (pacchi_rimanenti[x]!=pacchi_rimanenti[pacco-1] && pacchi_rimanenti[x]!=0) {
        printf("%d ",pacchi_rimanenti[x]);
             }
        else {
             printf( "  ");
             }
        }
        
    for (int y = 0; y < num_pacchi; y++)
     {          
        if(p[y].contenuto_pacco!=0)
       printf("\n%s",p[y].premio); 
       else {
             printf("\n");
             }                  //Mostra Valori Rimasti
         
     }
        printf("\n");
          
        printf( "\n\n\n");
        printf( "Quale pacco vuoi chiamare? ");
        scanf("%d",&chiama);
        if(pacco!=chiama)
        {
        
        
        if (pacchi_rimanenti[chiama-1]!=0) {
        Apertura_Pacco();
        pacchi_rimanenti[chiama-1]=0;
        fare_offerta++;
        
        }
        else
        {
        printf( "\n\n\nHai gia' chiamato quel pacco!!!");
        
        }
        //Gioca(nome,pacco);
        }
        else printf("Non puoi chiamare il tuo pacco...Premi invio per inserire un pacco diverso\n");
        
        
        getchar();
  
        Gioca(nome, pacco);

}

int offerta(char nome[], int pacco) {
    int scelta;
    int tipo_offerta;
    int tot_pacchi_rimasti=0;                  //TOTale PaCchi
    int valore_pacchi_rimasti=0;             //TOTale RiManente
    int off;
    int x;
    tipo_offerta=rand()%2;
     
if (tipo_offerta==0)
       {
    for (x=0; x < 20; x++) {
        if ((p[x].contenuto_pacco!=0) && (p[x].contenuto_pacco==-1)) 
        {
        valore_pacchi_rimasti += (p[x].contenuto_pacco+1);
        tot_pacchi_rimasti++;
        }      
        else if (p[x].contenuto_pacco!=0) 
        {
        
        valore_pacchi_rimasti += p[x].contenuto_pacco;
        tot_pacchi_rimasti++;
        
        }
           
    }
    system("cls");
    off = ((valore_pacchi_rimasti / tot_pacchi_rimasti));
    off=off*0.1;
    printf( "%s , per te l'offerta e': %d ",nome,off);
    for (int y = 0; y < 20; y++) {          //Mostra Valori Rimasti
        if (p[y].contenuto_pacco!=0) {
        printf("\n%s",p[y].premio);
        
             }
        else {
             printf("\n");
             }
        }
    printf("\n");
    printf( "\nAccetti l'offerta? (1)-(SI) - (0)-(NO)\n");
    while (scelta > 1 || scelta < 0)
    scanf("%d",&scelta);
    if (scelta==1) {
                   system("cls");
                   printf( "Hai vinto: %d",off);
                   printf("\n");
                   system("Pause");
                   exit (1);
                   }
}
else 
    {   
        
        int park,nuovo,scelta_cambio;
        //cambio_finito=0;
        if(cambio_finito==0)
        {
        fare_offerta--;
        printf("Vuoi cambiare pacco? 1-Si 0-No");
        
        while (scelta_cambio> 1 || scelta_cambio< 0)
        scanf("%d",&scelta_cambio);
        
        if (scelta_cambio==1)
         {
          printf("\nCon quale pacco vuoi cambiare il tuo?\nNuovo pacco: ");
          scanf("%d",&nuovo);
          park=pacco;
          pacco=nuovo;
          nuovo=park;        
          cambio_finito=1;
          Gioca(nome,pacco);
        }
        else
            {//printf("\nnumero offerte:%d\n",fare_offerta);
             
            
            //fare_offerta--;
            fare_offerta++;
            
            cambio_finito=1;
            
            
            
            }
           // fare_offerta++;
         //cambio_finito=0;   
         }
        // fare_offerta++; 
        
        
        
         
         
         Gioca(nome,pacco);
        
          
        
    }
   
}    

int Apertura_Pacco() {
    
    int PcVal;
    system("cls");
    printf( "Il valore del pacco e': ");
    PcVal = rand() % 20;
    

        while (p[PcVal].contenuto_pacco==0) {
              PcVal = rand() % 20;
              }
              
    printf("%s",p[PcVal].premio);
    p[PcVal].contenuto_pacco=0;
    
getchar();    
}

int Fine() {
    char *TotWn;
    int temp,flag=1;
         //TOTale WiN        Totale Vincita
    if (fare_offerta==19)
    {
    system("cls");
    
    for (int y = 0; y < 20; y++) 
      {                                       //Trova Valore che hai vinto
        if (p[y].contenuto_pacco!=0) 
           if (p[y].contenuto_pacco!=-1)
        TotWn =p[y].premio;
        
        else {
          flag=0;
          temp=y;   
             }
      }
              if(flag)
                   printf( "Hai vinto: %s!!!\n\n",TotWn);
                   
              else 
              printf("hai vinto: %s\n",p[temp].premio);
                   system("Pause");
                   exit (1);
                   }
                   getchar();
} 



il problema sta che quando decido di non cambiare pacco mi fa di nuovo l'offerta mentre me la dovrebbe rifare tra altre 3 chiamate di pacco,perchè la richiesta di acmbio pacco è anch'essa un offerta
aaa
22/01/10 13:28
Anonymous
scusate per l'enorme OT che sto facendo, ma mi sembrava doveroso un bel LOL dopo aver letto la firma di NickoMaiden

char segreto[100]={"Abaca da cala da ciaccia"};
for(int i=0;i<100;i++)
  {
  if(segreto[ i ]=='a'||segreto[ i ]=='A')
    {
    segreto[ i ]='u';
    }
  }
cout<<segreto;
system("pause");
return EXIT_SUCCESS; 


chiudendo l'ot, e cercando di reindirizzare il mio post in un qualcosa di sensato, faccio sapere che cmq mi sembra che in questo sito ci sia una o forse addirittura due versioni (di cui una son quasi certo al 100% che è in c/c++) del programma affari tuoi....

però se come hai già detto che il codice lo hai già fatto, allora nn ti serve a molto, ma se vuoi trovare l'errore almeno posta il codice...

Ultima modifica effettuata da Anonymous 22/01/10 13:29
aaa
22/01/10 13:30
pippo87
il codice è postato
aaa
22/01/10 14:09
Anonymous
si scusa... avevo iniziato a scrivere mentre tu lo stavi postando....

cmq aggiungere un po di informazioni in più??
del tipo:
dov'è che ti da errore?
che tipo di errore è?
aaa