0

So this is my program and the number, name, address doesn't print again after single execution and also If the seat is already taken there should be "seat is taken already, please try again" which I'm confused about

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

int main() 
{
    struct passenger
    {
        char name[20];
        char address[30];
        int age;
    };
    
    struct passenger data;
    
    struct rwcl 
    {
        int row;
        char col;
    };
    
    int clmn, i, j;
    int arr[5][5];
    
    struct rwcl number;
    
    for(i=0;i<5;i++)
    {
    printf("Enter Your Name: ");
    scanf("\n");
    gets(data.name);
    
    printf("Enter Your Address: ");
    scanf("\n");
    gets(data.address);
    
    printf("Enter Your Age: ");
    scanf("%d", &data.age);
    
    printf("\nAll aboard! You may now choose your desired seat/s.");
    
    
    while(i<5){
        for(j=0;j<5;j++){
            if (j == 0) {
                arr[i][j] = i+1;
            }
            if(j == 1){
                arr[i][j] = 'A';
            }
            
            if(j== 2){
                arr[i][j] = 'B';
            }
            
            if(j == 3){
                arr[i][j] = 'C';
            }
            
            if(j== 4){
                arr[i][j] = 'D';
            }
        }
    i++;
    }
    
    printrwcl: 
    printf("\n\n");
    for(i=0;i<5;i++){
        
        for(j=0;j<5;++j){
            if(j == 0 ){
                printf("%-5d", arr[i][j]);
            }
            
            else {
                printf("%-5c", arr[i][j]); 
            }
        }
        
        if(j==5) {
            printf("\n");
        }
    }
    
    printf("\n");
    
    rowselect:
    printf("Choose a row between 1,2,3,4,5 or 6 for cancellation: ");
    scanf("%d", &number.row);
    
    if(number.row < 0 || number.row > 6) {
        printf("\nPlease, re-enter. Thank you.\n");
        goto rowselect; 
    }
    
    if(number.row == 6) {
            printf("Recorded, thank you.");
            exit(0);
    }
    columnselect:
    printf("Choose a letter between A,B,C,D: ");
    scanf("\n");
    scanf("%c", &number.col);
    
    
    switch(number.col)
    {   
        case 'A':
            clmn = 1;
            break;
            
        case 'B':
            clmn = 2;
            break;
        
        case 'C':
            clmn = 3;
            break;
            
        case 'D':
            clmn = 4;
            break; 
    }
    
    if(arr[number.row-1][clmn] == 'X')
    {
        printf("Seat is taken. Please choose a different one.");
    }
    
    else
    {
        printf("Seat %d%c has been reserved.", number.row, number.col);
        arr[number.row-1][clmn] = 'X';
    }
    goto printrwcl;
    }

}
Fred Larson
  • 60,987
  • 18
  • 112
  • 174

0 Answers0