Προς το περιεχόμενο
  • 0

βοήθεια με ένα πρόγραμμα parking στη c/c++


AlexiaMag

Ερώτηση

Δημοσ. (επεξεργασμένο)

ΓΕΙΑ ΣΑΣ ΕΧΩ ΝΑ ΚΑΝΩ ΕΝΑ ΠΡΟΓΡΑΜΜΑ ΣΤΗΝ ΣΧΟΛΗ ΠΟΥ ΕΧΕΙ ΣΧΕΣΗ ΜΕ ΑΛΦΑΡΙΘΜΗΤΙΚΑ ΣΤΗΝ ΓΛΩΣΣΑ C/C++ ΚΑΙ ΤΟ ΜΟΝΟ ΠΟΥ ΚΑΤΑΦΕΡΑ ΝΑ ΚΑΝΩ ΕΙΝΑΙ ΝΑ ΔΟΥΛΕΥΩ ΜΟΝΟ ΜΕ ΕΝΑ ΧΑΡΑΚΤΗΡΑ.

ΓΕΝΙΚΑ ΑΥΤΗ ΕΙΝΑΙ Η ΕΚΦΟΝΗΣΗ:

----------------------------------------------------------------------------------------------------------------------------------------------------------------

Ένας χώρος στάθμευσης διαθέτει 200 θέσεις για αυτοκίνητα και 40 θέσεις για μοτοσικλέτες.

Δημιουργήστε μία συνάρτηση που να δέχεται ως πρώτη παράμετρο ένα διδιάστατο πίνακα που περιέχει αριθμούς κυκλοφορίας (μέχρι 10 χαρακτήρες), ως δεύτερη παράμετρο τον αριθμό κυκλοφορίας κάποιου οχήματος και σαν τρίτη τον τύπο του (π.χ. 1 για αυτοκίνητα και 2 για μοτοσικλέτες).

Αν ο αριθμός κυκλοφορίας υπάρχει στον πίνακα, η συνάρτηση να επιστρέφει τη θέση του στον πίνακα, αλλιώς να επιστρέφει -1.

 

 

Να γραφεί ένα πρόγραμμα το οποίο να διαβάζει συνεχώς αριθμούς κυκλοφορίας οχημάτων και τον τύπο τους (αυτοκίνητο ή μοτοσικλέτα).

Για κάθε αριθμό κυκλοφορίας, το πρόγραμμα να καλεί τη συνάρτηση και αν επιστρέψει -1, σημαίνει ότι το όχημα δεν είναι σταθμευμένο και ο αριθμός να καταχωρείται στην πρώτη διαθέσιμη θέση αντίστοιχου διδιάστατου πίνακα (Σημ. να ορίσετε έναν πίνακα για αυτοκίνητα και ένα δεύτερο για μοτοσικλέτες. Για να βρείτε τη θέση δημιουργήστε κατάλληλη συνάρτηση).

Αν δεν επιστρέψει -1, σημαίνει ότι βρέθηκε ο αριθμός κυκλοφορίας του οχήματος και το πρόγραμμα να ελευθερώνει τη θέση θέτοντας το 0 στην αντίστοιχη θέση του πίνακα και να χρεώνει το όχημα με το αντίτιμο, που είναι 10€ για αυτοκίνητα και 4€ για μοτοσικλέτες.

Αν ο χρήστης εισάγει για αριθμό κυκλοφορίας το end το πρόγραμμα να τερματίζει και να εμφανίζει τις συνολικές εισπράξεις και τις ελεύθερες θέσεις.

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

ΠΡΟΣΠΑΘΗΣΑ ΝΑ ΔΟΥΛΕΨΩ ΜΕ ΤΙΣ ΕΝΔΟΛΕΣ gets(); kai fgets(); ΑΝΤΙ ΓΙΑ scanf(); ΟΜΩΣ ΑΥΤΟ ΜΟΥ ΕΚΑΝΕ ΑΝΩΜΑΛΟ ΤΕΡΜΑΤΙΣΜΟ ΣΤΟ ΠΡΟΓΡΑΜΜΑ.

ΑΠΟ ΤΙ ΚΑΤΑΛΑΒΑ ΔΕΝ ΑΠΟΘΗΚΕΥΟΝΤΑΙ ΚΑΙ ΟΙ 10 ΧΑΡΑΚΤΗΡΕΣ ΤΟΥ ΑΛΦΑΡΙΘΜΗΤΙΚΟΥ ΚΑΙ ΤΟ ΠΡΟΓΡΑΜΜΑ ΜΟΥ ΔΙΝΕΙ ΤΑ ΑΠΟΤΕΛΕΣΜΑΤΑ ΠΟΥ ΘΕΛΩ ΜΟΝΟ ΜΕ %c, ΑΛΛΙΩΣ ΜΕ ΤΗΝ %s ΔΕΝ ΜΟΥ ΕΜΦΑΝΙΖΕΙ ΤΙΠΟΤΑ ΚΑΙ ΔΕΝ ΚΑΝΕΙ ΣΩΣΤΗ ΣΥΓΡΗΣΗ ΑΛΦΑΡΙΘΜΗΤΙΚΩΝ, ΔΗΛΑΔΗ Η ΣΥΝΑΡΤΗΣΗ findnum ΣΥΓΚΡΙΝΕΙ ΜΟΝΟ ΤΟΝ ΠΡΩΤΟ ΧΑΡΑΚΤΗΡΑ ΚΑΙ ΑΝ ΕΙΝΑΙ ΙΔΙΟΣ ΕΠΙΣΤΡΕΦΕΙ α=1.

ΕΥΧΑΡΙΣΤΩ ΕΚ ΤΟΝ ΠΡΩΤΕΡΟΝ.

ΑΥΤΟ ΕΙΝΑΙ ΤΟ ΠΡΟΓΡΑΜΜΑ ΜΟΥ:

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>

#define CAR 1      
#define SCOOTER 2   


/*
ΣΗΜΕΙΩΣΕΙΣ:

ΤΟ ΠΡΟΓΡΑΜΜΑ ΚΑΝΕΙ ΑΚΡΙΒΩΣ ΑΥΤΟ ΠΟΥ ΘΕΛΕΤΕ ΕΚΤΟΣ ΤΟΥ ΟΤΙ ΔΕΝ ΠΕΡΝΕΙ ΑΡΙΘΜΟΥΣ ΚΥΚΛΟΦΟΡΙΑΣ ΜΕΧΡΙ 10 ΧΑΡΑΚΤΗΡΕΣ.

ΕΙΧΑ ΠΡΟΒΛΗΜΑ ΣΤΗΝ ΑΠΟΘΗΚΕΨΕΙ ΚΑΙ ΕΜΦΑΝΙΣΕΙ ΤΟΝ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΜΕ %S:
-----1. Η findum ΣΥΝΑΡΤΗΣΗ ΔΕΝ ΕΚΑΝΕ ΣΩΣΤΑ ΤΗΝ ΣΥΓΡΗΣΗ ΧΑΡΑΚΤΗΡΩΝ ΚΑΙ ΕΠΕΣΤΡΕΦΕ ΤΗΝ ΘΕΣΕΙ ΤΟΥ ΟΧΙΜΑΤΥΟΣ ΑΝ ΤΟ ΠΡΩΤΟ ΧΑΡΑΚΤΗΡΑ ΗΤΑΝ ΙΔΙΟ.
     Π.Χ ΑΒΓ=ΑΔΣ ΓΙΑΤΙ Α=Α, ΕΝΩ ΕΠΡΕΠΕ ΑΒΓ=!ΑΔΣ, ΚΑΙ ΜΟΝΟ ΑΒΓ=ΑΒΓ.
-----2. ΕΝΩ ΣΤΟ ΠΡΟΓΡΑΜΜΑ ΜΠΟΡΟΥΜΕ ΝΑ ΔΩΣΟΥΜΕ ΑΛΦΑΡΙΘΜΗΤΙΚΑ ΜΕΧΡΙ 10 ΧΑΡΑΚΤΗΡΕΣ, ΣΤΟ ΤΕΛΟΣ ΔΕΝ ΓΙΝΕΤΑΙ Η ΕΜΦΑΝΙΣΗ ΤΟΥ PARKING.
ΕΚΤΟΣ ΑΝ ΑΝΤΙ ΓΙΑ %S ΒΑΖΩ %C ΚΑΙ ΕΤΣΙ ΕΜΦΑΝΙΖΕΤΑΙ ΜΟΝΟ ΤΟ ΠΡΩΤΟ ΧΑΡΑΚΤΗΡΑ ΤΟΥ ΑΡΙΘΜΟΥ ΚΥΚΛΟΦΟΡΙΑΣ..


ΑΝ ΕΒΑΛΑ ΝΑ ΜΟΥ ΕΜΦΑΝΙΖΕΙ ΚΑΠΟΙΟ ΑΠΟ ΤΑ num, parkinfo[r][c], car[i][j], scooter[i][j] ΜΕ ΤΟ %S ΜΟΥ ΕΜΦΑΝΙΖΕ ΤΟΝ ΙΔΙΟ ΤΥΧΑΙΟ ΧΑΡΑΚΤΗΡΑ ΟΠΩΣ: num='gyΩ ΣΕ ΚΑΘΕ ΕΠΑΝΑΛΙΨΗ.

    
*/

//---------------------------------------------------------------------------------------------------------------------------------------------------------------------

//ΔΗΛΩΣΕΙΣ ΣΥΝΑΡΤΗΣΕΩΝ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ:
struct vehicle 

char *num;

int row, col, type;
} ;

char parkinfo[24][10];  
                
int vehcount2=240, vehcount=0, vehcount3=0, vehcount4=0;
int carcount2=200, carcount=0, carcount3=0, carcount4=0; 
int scootercount2=40, scootercount=0, scootercount3=0, scootercount4=0; 

int flag, a, I, J, L;               

void findnum( int*, char*, int );
struct vehicle * add( int, char, int, int );  
  

void getfreerowcol( int, int * );  
void getrcbyinfo( int*, char, int ); 
 

void del( struct vehicle * ); 
void display( );

void changecol( struct vehicle * );  
void changecol ( struct vehicle *v )      
{
    v -> col = v -> col - 1;             
}
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------

//ΣΥΝΑΡΤΗΣΗ ΠΟΥ ΕΛΕΓΧΕΙ ΑΝ Ο ΑΡΙΘΜΟΣ ΚΥΚΛΟΦΟΡΙΑΣ ΥΠΑΡΧΕΙ ΕΙΔΙ ΣΤΟ ΠΙΝΑΚΑ.

//ΑΥΤΗ ΕΙΝΑΙ Η ΣΥΝΑΡΤΗΣΗ ΠΟΥ ΖΗΤΗΣΑΤΕ ΣΤΗΝ ΕΚΦΩΝΗΣΗ.
void findnum ( int *arr, char *num, int type)
{
    int r, c, fromrow=0, torow=20;             

    flag=0;
    
    I=0;
    J=-9;  
  


    if ( type == SCOOTER )
      {
        fromrow+=20;                                
        torow+=4;                                  
      }

    for ( r = fromrow ; r < torow ; r++ )                
      {
        for ( c = 0 ; c < 10 ; c++ )    
         {
          if ( parkinfo[r][c]==*num )
            {
             flag++;
             
             if ( type == CAR )
             {
                 I=r;
                J=c;
             }
             else
             {
                 I=r-20; 
                 J=c;
             }
            } 
         }
      }

    if ( flag>0 ) 
      { 
        a=1;
        
        printf("To oxima me arithmo kykloforias %s brethike stin thesi parking [%d][%d]", num, I, J); 
        printf("\n\n\n");
      } 
    else 
      {
        a=-1;
        
        printf("%d", a);
        printf("\n\n\n");
      }
 }
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------

//ΣΥΝΑΡΤΗΣΗ ΟΠΟΥ ΔΙΝΟΥΜΕ ΤΑ ΣΟΙΧΕΙΑ ΤΟΥ ΟΧΗΜΑΤΟΣ
struct vehicle *add( int t, char num, int row, int col )     
{
    struct vehicle * v;                                              

    v = ( struct vehicle*) malloc(sizeof (vehicle));        

    v -> type=t;                                                  
    v -> row=row;                                                  
    v -> col=col;                                                  

    if ( t==CAR )      
      {
        carcount++;       
        carcount2--; 
        carcount3++;                                          
      }        
      
              
                                                                               
    if ( t==SCOOTER )
      {
        scootercount++;     
        scootercount2--;  
        scootercount3++;
      }
                                                


    vehcount++;    
    vehcount2--;    
    vehcount3++;   
                                               
    parkinfo[row][col]=num;                                           

    return v;                                                         
}
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------

//ΣΥΝΑΡΤΗΣΗ ΠΟΥ ΑΠΟΘΗΚΕΥΕΙ ΤΟΝ ΑΡΙΘΜΟ ΚΥΚΛΟΦΟΡΙΑΣ ΣΕ ΕΝΑ ΠΙΚΑΝΑ ΣΕ ΠΕΡΙΠΤΩΣΗ ΠΟΥ ΤΟ ΟΧΗΜΑ ΔΕΝ ΥΠΑΡΧΕΙ ΣΤΟ ΠΑΡΚΙΝΓ ΚΑΙ a=-1
void getfreerowcol ( int type, int *arr )               
{
    int r, c, fromrow = 0, torow = 20;                

    if ( type == SCOOTER )
      {
        fromrow+= 20;                               
        torow+= 4;                                     
      }

    for ( r = fromrow ; r < torow ; r++ )                
      {
        for ( c = 0 ; c < 10 ; c++ )    
         {
          if ( parkinfo[r][c] == 0 )                   
            {
              arr[0]=r;                             
              arr[1]=c;
                
              return;
            } 
         }
      }

    if ( r == 0 || r == 20 ) 
      {
        arr[0]=-1;
        arr[1]=-1;
      } 
}
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------

//ΣΥΝΑΡΤΗΣΗ ΠΟΥ ΚΑΛΕΙΤΑΙ ΣΕ ΠΕΡΙΠΤΩΣΗ ΠΟΥ Ο ΑΡΙΘΜΟΣ ΚΥΚΛΟΦΟΡΙΑΣ ΕΝΟΣ ΟΧΗΜΑΤΟΣ ΥΠΑΡΧΕΙ ΕΙΔΙ ΣΤΟ PARKING ΚΑΙ ΤΟ ΔΙΑΓΡΑΦΕΙ:

//ΔΗΛΑΔΗ ΒΑΖΕΙ 0 ΣΤΗΝ ΑΝΤΙΣΤΟΙΧΗ ΘΕΣΗ ΣΕ ΠΕΡΙΠΤΩΣΗ ΠΟΥ a=1
void del ( struct vehicle *v )                                  
{
    int c;                                                    

    for ( c = v -> col ; c < 10 ; c++ )    
    {   
        
        parkinfo[v -> row][c] = 0 ;
        break;
                        
    }                                                        
}
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------

//ΣΥΝΑΡΤΗΣΗ ΠΟΥ ΕΜΦΑΝΙΖΕΙ ΤΗΝ ΛΙΣΤΑ ΤΟΝ ΠΑΡΚΑΡΙΣΜΕΝΩΝ ΟΧΗΜΑΤΩΝ ΩΣ ΠΙΝΑΚΑ ΚΑΙ ΒΑΖΕΙ 0 ΣΤΙΣ ΕΛΕΥΘΕΡΕΣ ΘΕΣΕΙΣ

//ΟΠΟΤΕ ΜΕ ΤΟΝ ΤΕΡΜΑΤΙΣΜΟ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ ΘΑ ΔΩΘΟΥΝ ΤΑ ΑΠΟΤΕΛΕΣΜΑΤΑ ΚΑΙ ΘΑ ΕΜΦΑΝΙΣΤΕΙ ΟΛΟΚΛΗΡΟ ΤΟ PARKING. 

//ΜΕ ΤΙΣ ΠΙΑΣΜΕΝΕΣ ΚΑΙ ΤΙΣ ΑΠΙΑΣΤΕΣ ΘΕΣΕΙΣ.
void display( )
{
    int r, c;

    printf ("Autokinita ->\n\n");

    for ( r = 0 ; r < 24 ; r++ )   
    {
        if ( r == 20 ) 
        {
           printf ("\n\n\nMixananes ->\n\n");    
        }
            


        for ( c = 0 ; c < 10 ; c++ )   
        {
           if (parkinfo[r][c]==0 )
           {
               printf ("%d\t", parkinfo[r][c]);
           }
           else
           {
               printf ("%c\t", parkinfo[r][c]);   
           }
        }
           
           
           
        printf("\n");
    }  
}
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------

//ΒΑΣΙΚΟ ΠΡΟΓΡΑΜΜΑ
int main ()
{
    struct vehicle *v;
    
    int type, i = 0, j = 0, sum1=0, sum2=0, sum3, k, tarr[2],end = 1, l, O, o; 
    
    char number[11];
    char number2[11];
    char number3[11]="END";
    char number4[11]="end";
    
    
    
    //2 ΔΙΣΤΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ, 1 ΓΙΑ ΑΥΤΟΚΗΝΙΤΑ ΜΕ 200 ΘΕΣΕΙΣ ΚΑΙ 1 ΓΙΑ ΜΗΧΑΝΕΣ ΜΕ 40 ΘΕΣΕΙΣ
    struct vehicle *car[20][10];   
    struct vehicle *scooter[4][10]; 
    
    
    
    //ΟΔΗΓΕΙΕΣ ΠΡΟΣ ΤΟΝ ΧΡΥΣΤΗ ΣΧΕΤΙΚΑ ΜΕ ΤΟ ΠΡΟΓΡΑΜΜΑ ΚΑΙ ΤΙ ΝΑ ΚΑΝΕΙ
    printf("Parking:\n\n\n\n\n");
    printf("To programma pernei arithmoys kykloforias oximaton ( mono akeraiooys arithmoys )kai ta symperilambanei se ena parking.\n\n\n");
    printf("To parking exei 240 eleytheres theseis:\n");
    printf("---200 theseis gia aytokinita.\n");
    printf("---40 theseis gia mixanes.\n\n\n");
    
    printf("\nTha prepei na dosete:\n---ton typo toy oximatos poy thelete na parkaretai\n---kai ton arithmo kykloforias toy\n\n");
    printf("---Eite mexri ospoy na gemizoyn oles oi theseis sto parking.\n");
    printf("---Eite mexri ospoy eseis tha epythimite na termartisetai to programma.\n\n\n");
    
    
    
    //ΤΟ end ΓΙΝΕΤΑΙ 1, ΑΠΟ 0, ΟΤΑΝ ΔΩΘΕΙ ΩΣ number2 ΤΟ END 'H end
    while ( end )
    {
    
      
    
        //ΕΛΕΓΧΟΣ ΣΕ ΠΕΡΙΠΤΩΣΕΙ ΠΟΥ ΓΕΜΙΖΕΙ ΟΛΟ ΤΟ PARKING.
        if ( vehcount==240 )
        {
        printf("Den yparxoyn katholoy eleytheres theseis sto praking.");
            
        goto telos;
        }
                
                
                
        type=0;
                
                
                
        //ΕΛΕΓΧΟΣΕ ΣΕ ΠΕΡΙΠΤΩΣΗ ΠΟΥ ΘΑ ΤΕΛΕΙΩΣΟΥΝ ΟΙ ΘΕΣΕΙΣ ΓΙΑ ΤΑ ΑΥΤΟΚΗΝΙΤΑ.   
        if ( carcount == 200 )
        {
        printf("Den yparxoyn eletheres theseis gia autokinita.\n");
        printf("Mporeis na doseis mono typo = 2");
        }
                
                
                
        //ΕΛΕΓΧΟΣΕ ΣΕ ΠΕΡΙΠΤΩΣΗ ΠΟΥ ΘΑ ΤΕΛΕΙΩΣΟΥΝ ΟΙ ΘΕΣΕΙΣ ΓΙΑ ΤΙΣ ΜΗΧΑΝΕΣ.    
        if ( scootercount == 40 )
        {
        printf("Den yparxoyn eletheres theseis gia mixanes.\n");
        printf("Mporeis na doseis mono typo = 1");
        }
                
                
        
        //ΖΗΤΑΜΕ ΤΟΝ ΑΡΙΘΜΟ ΚΥΚΛΟΦΟΡΙΑΣ.
        printf("\n\n\nDose ton arithmo kykloforias toy oximatos:\n---mexri 10 xaraktires.\n(se periptosei poy dosete perissoteroys xarakthres to programma tha kratisei mono toys protoys 10)\n");
        printf("---Gia na termatisete to programma prepei na dosete os arithmo kykloforias to 'end' i to 'END'.\n");
        scanf("%s", number);        
                
        printf("\n\n\nDosate ton arithmo kykloforias:");
                
        for ( l=0; l<10;l++)
        {
            number2[l]=number[l];  //ΕΛΕΓΧΟΣ ΕΤΣΙ ΩΣΤΕ ΤΟ number2 ΝΑ ΠΕΡΙΕΧΕΙ ΑΠΟ 1-10 ΧΑΡΑΚΤΗΡΕΣ.
                                   //ΑΝ number >10 ΧΑΡΑΚΤΗΡΕΣ: abcdefghisjklmn ΤΟ ΠΡΟΓΡΑΜΜΑ ΘΑ ΚΡΑΤΙΣΕΙ ΤΟ number2 ΠΟΥ ΘΑ ΠΕΡΙΕΧΕΙ
                                   //ΤΟΥΣ ΠΡΩΤΟΥΣ 10 ΧΑΡΑΚΤΗΡΕΣ: abcdefghij
        }
                
        printf("%s\n\n\n", number2);
               
        
                
        //ΕΛΕΓΧΟΣ ΣΕ ΠΕΡΙΠΤΩΣΗ ΠΟΥ ΤΟ number2 ΕΙΝΑΙ ΙΣΟ ΜΕ END 'Η end    
        O= strcmp ( number2, number3);
        o= strcmp ( number2, number4);
        
        if ( O==0 || o==0 )
        {
        goto telos;
        }
        else
        {
        goto arxi;    
        }        
        
        
        
               //ΚΩΔΙΚΑΣ ΠΟΥ ΧΕΙΡΙΖΕΤΑΙ ΤΟΥΣ ΑΡΙΘΜΟΥΣ ΚΥΚΛΟΦΟΡΙΑΣ 
                if ( O>0 && o>0 )
                {
                arxi: 
                
                
                    
                   //ΖΗΤΑΜΕ ΚΑΙ ΕΛΕΓΧΟΥΜΕ ΤΟΝ ΤΥΠΟ ΤΟΥ ΟΧΗΜΑΤΟΣ (1 i 2)
                   while ( type != CAR && type != SCOOTER )
                   {
                   pali:
                    
                    
                    
                   printf("\n\n\nDose ton typo toy oximatos:\n---1 gia autokinito\n---2 gia mixani\n");
                   scanf("%d", &type);
                    
                   printf("\n\n\n");
                    
                    
                    
                   if ( carcount == 200 )
                   {
                   printf("\nEdoses lathos typo.\n");  
                        
                   goto pali;
                   }
                    
                    
                    
                   if ( scootercount == 40 )
                   {
                   printf("\nEdoses lathos typo.\n");  
                        
                   goto pali;
                   }
                    
                    
                    
                   if ( type != CAR && type != SCOOTER )
                   {
                   printf("\nEdoses lathos typo.\n");  
                        
                   goto pali;
                   }
                   }       
                    
                    
                    
                    //ΚΑΛΕΙΤΑΙ Η ΣΥΝΑΡΤΗΣΗ ΠΟΥ ΚΝΑΕΙ ΤΟΝ ΕΛΕΓΧΟ ΚΑΙ ΘΑ ΕΠΙΣΤΡΕΨΕΙ ΑΝΑΛΟΓΑ -1 'Η ΤΗΝ ΘΕΣΗ ΤΟΥ ΟΧΗΜΑΤΟΣ
                    findnum ( tarr, number2, type ); 
                
                
              
                      //ΓΙΝΕΤΑΙ ΠΡΟΣΘΕΣΕΙ ΣΤΟΙΧΕΙΩΝ ΤΟΥ ΟΧΗΜΑΤΟΣ ΣΤΟ ΚΑΤΑΛΛΙΛΟ ΠΙΝΑΚΑ (ΓΙΑ ΑΥΤΟΚΗΝΙΤΟ 'Η ΓΙΑ ΜΗΧΑΝΗ)
                    //ΑΝ ΤΟ ΟΧΗΜΑ ΔΕΝ ΥΠΑΡΧΕΙ ΚΑΙ a=-1
                    if ( a==-1 )
                    {
                       //ΚΑΛΕΙΤΑΙ Η ΣΥΝΑΡΤΗΣΗ ΠΟΥ ΘΑ ΒΡΕΙ ΤΗΝ ΠΡΩΤΗ ΕΛΕΥΘΕΡΗ ΘΕΣΕΙ ΓΙΑ ΝΑ ΑΠΟΘΗΚΕΥΕΙ ΤΟΝ ΑΡΙΘΜΟ ΚΥΚΛΟΦΟΡΙΑΣ ΣΤΟ PARKING.
                       getfreerowcol ( type, tarr );

                       if ( tarr[0] != -1 && tarr[1] != -1 )
                       {
                        i=tarr[0];
                        j=tarr[1];

                        if ( type == CAR )
                        {
                            car[i][j]=add ( type, *number2, i, j ); 
                        } 
                        else
                        {
                            scooter[i][j]=add ( type, *number2, i, j );  
                        }
                       }         
                    }   
                    
                    
                    
                    //ΓΙΝΕΤΑΙ ΔΙΑΓΡΑΦΕΙ ΤΟΥ ΑΡΙΘΜΟΥ ΚΥΚΛΟΦΟΡΙΑΣ ΑΠΟ ΤΟ PARKING
                    //ΑΠΕΛΕΥΘΕΡΟΝΕΤΑΙ Η ΘΕΣΗ, ΘΕΣΗ=0, ΚΑΙ ΥΠΟΛΟΓΙΖΟΝΤΑΙ ΤΑ SUM ΚΑΙ ΟΙ ΑΛΛΕΣ ΜΕΤΑΒΛΗΤΕΣ
                    // ΑΝ ΤΟ ΟΧΗΜΑΒΡΕΘΗΚΕ ΚΑΙ a=1
                    if ( a==1 )
                    {
                       printf("To oxima tha bgei apo to parking.\n");
                  
    
                  
                       if ( type == CAR )
                       {
                      
                        
                      
                         for ( i=0; i<200; i++ )  
                         {
                             for ( j=0; j<11; j++ )
                             {
                              if ( i==I && j==J )
                              {
                                  del( car[i][j]);
                            }
                           }
                         }
                        
                      
                      
                                sum1=sum1+10;    
                            
                                carcount--;  
                                carcount2++;
                                carcount4++;
                        
                                vehcount--;   
                                vehcount2++;  
                                vehcount4++;
                       }
                       else
                       {
                         for ( i=0; i<20; i++ )   
                         {
                             for ( j=0; j<10; j++ )
                             {
                              if ( i==I && j==J )
                              {
                                  i=i+20;
                                  
                                del( scooter[i][j]);
                            }
                           }
                         }
                      
                      
                      
                                sum2=sum2+4;
                        
                                scootercount--; 
                                scootercount2++;
                                scootercount4++;
                        
                                vehcount--;   
                                vehcount2++;  
                                vehcount4++;
                       } 
                    }
                    printf("\n\n\n"); 
                }
                //ΚΩΔΙΚΑΣ ΠΟΥ ΤΕΡΜΑΤΙΖΕΙ ΤΟ ΠΡΟΓΡΑΜΜΑ ΟΤΑΝ ΔΩΘΕΙ ΤΟ end 'Η END
                else if ( O==0 || o==0 )
                {
                telos:
                
                
                
                printf("\n\n\n----------------------------------------------------------------------------------------------------------\n\n\n");
                printf("----------------------------------------------------------------------------------------------------------");
                
                printf("\n\n\nEgine termatismos toy programmatos.\n\n");
                printf("Sto parking yparxoyn %d parkarismena oximata:\n---%d autokinita\n---%d mixanes.\n\n\n", vehcount, carcount, scootercount);
                printf("Kai %d eleytheres theseis apo tis opoies:\n---%d einai gia autokinita\n---%d einai gia mixanes\n\n\n", vehcount2, carcount2, scootercount2);
                
                printf("Synolika sto parkin mpikan %d oximata:\n---%d autokinita\n---%d mixanes\n\n\n", vehcount3, carcount3, scootercount3);
                printf("Kai bgikan %d oximata:\n---%d autokinita\n---%d mixanes\n\n\n", vehcount4, carcount4, scootercount4);
                
                sum3=sum1+sum2;
             
                printf ("Oi synolikes eispra3eis einai %d euro.\n\n", sum3);
                printf ("---10*%d=%d euro apo ta aytokinita.\n",carcount4, sum1);
                printf ("---4*%d=%d euro apo tis mixanes.\n\n\n",scootercount4, sum2);    
                
                printf("\n\n\n----------------------------------------------------------------------------------------------------------\n\n\n");
                
                printf ("\n\n\nEmfanisei toy parking.\n\n\n");
                display( );
               
                printf("\n\n\n");
                
                end=0;
                }        
   }
}

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Επεξ/σία από AlexiaMag
Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

6 απαντήσεις σε αυτή την ερώτηση

Προτεινόμενες αναρτήσεις

  • 0

Για να διαβάσεις ένα string, ρίξε μια ματιά εδώ. Δοκίμασε να φτιάξεις ένα καινούριο πρόγραμμα που το μόνο που θα κάνει είναι να διαβάζει ένα string και στη συνέχεια να το εκτυπώνει στην οθόνη. Όταν καταφέρεις να το κάνεις, τότε με τον ίδιο τρόπο θα μπορείς να διαβάζεις strings και στο πρόγραμμά σου.

  • Like 1
Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0
1 ώρα πριν, Kercyn είπε

Για να διαβάσεις ένα string, ρίξε μια ματιά εδώ. Δοκίμασε να φτιάξεις ένα καινούριο πρόγραμμα που το μόνο που θα κάνει είναι να διαβάζει ένα string και στη συνέχεια να το εκτυπώνει στην οθόνη. Όταν καταφέρεις να το κάνεις, τότε με τον ίδιο τρόπο θα μπορείς να διαβάζεις strings και στο πρόγραμμά σου.

eyxaristw

 

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Έριξα μια ματιά στο σημείο που διαβάζεις τον αριθμό. Η scanf φαίνεται σωστή. Αν εκτυπώνεται σωστά, τσέκαρε τη συνάρτησή findnum.

Αν έχεις χρόνο και και δεν ξέρεις τι είναι ο debugger... Ψάξε: "How to Debug C Program".  

Αν ο κώδικάς σου είναι άναρχος/μπερδεμένος σημαίνει ότι κάτι δεν κάνεις καλά και χρειάζεται καλύτερη οργάνωση η σκέψη σου. Σιγά σιγά θα τα βάλεις σε μια σειρά.

  • Like 1
Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0
2 ώρες πριν, marios28 είπε

Έριξα μια ματιά στο σημείο που διαβάζεις τον αριθμό. Η scanf φαίνεται σωστή. Αν εκτυπώνεται σωστά, τσέκαρε τη συνάρτησή findnum.

Αν έχεις χρόνο και και δεν ξέρεις τι είναι ο debugger... Ψάξε: "How to Debug C Program".  

Αν ο κώδικάς σου είναι άναρχος/μπερδεμένος σημαίνει ότι κάτι δεν κάνεις καλά και χρειάζεται καλύτερη οργάνωση η σκέψη σου. Σιγά σιγά θα τα βάλεις σε μια σειρά.

ωραια σε ευχαριστω θα την κοιταξω

 

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Εγγραφείτε για έναν νέο λογαριασμό

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...

Με την περιήγησή σας στο insomnia.gr, αποδέχεστε τη χρήση cookies που ενισχύουν σημαντικά την εμπειρία χρήσης.