Every line of this c program please explain. Thank you Source Code: // include necessary header files # include # include # include int main(){ // Use current time as seed srand(time(0)); // declare...


Every line of this c program please explain. Thank you




Source Code:


// include necessary header files
# include
# include
# include


int main(){

        // Use current time as seed
    srand(time(0));

    // declare variables
        int arr[5][5] = {0}, user_num[5] = {0}, k = 1, i, j;
        int num[75] = {0}, n, flag, count, winner = 0;

        // initialize num array
        for(i = 0; i < 75;="">
                num[i] = k++;

        // initialize the array cell with random numbers
        for(i = 0; i < 5;="">
                for(j = 0; j < 5;="">
                        while(1){
                                // generate random numbers
                                n = rand() % 75;
                                if(num[n] != 0){
                                        arr[i][j] = n + 1;
                                        num[n] = 0;
                                        break;
                                }
                        }

                }
        }

        // display board
        printf("  B   I    N    G    O\n");
        printf("--------------------------\n");
        for(i = 0; i < 5;="">
                for(j = 0; j < 5;="">
                        printf("%3d |",arr[i][j]);
                }
                printf("\n--------------------------\n");
                printf("\n");
        }

        // take input of five numbers
        printf("Input 5 number combination: ");
        for(i = 0; i < 5;="">
                scanf("%d",&user_num[i]);

        // make the position 0 for all aviable number
        // if not found then not a winner
        for(i = 0; i < 5;="">
                flag = 0;
                n = user_num[i];
                for(j = 0; j < 5;="">
                        for(k = 0; k < 5;="">
                                if(arr[j][k] == n){
                                        user_num[i] = 0;
                                        arr[j][k] = 0;
                                        flag = 1;
                                        break;
                                }
                        }
                        if(flag == 1)
                                break;
                }
                if(flag == 0)
                        break;
        }


        if(flag == 0)
                printf("Not a winner!");
        else{
                // check horizontal
                for(j = 0; j < 5;="">
                        count = 0;
                        for(k = 0; k < 5;="">
                                if(arr[j][k] == 0)
                                        count++;
                                else
                                        break;
                        }

                        if(count == 5){
                                printf("BINGO winner!");
                                winner = 1;
                                break;
                        }
                }


                if(winner == 0){
                        // check vertical
                        for(j = 0; j < 5;="">
                                count = 0;
                                for(k = 0; k < 5;="">
                                        if(arr[k][j] == 0)
                                                count++;
                                        else
                                                break;
                                }

                                if(count == 5){
                                        printf("BINGO winner!");
                                        winner = 1;
                                        break;
                                }
                        }
                }

                if(winner == 0){
                        // check principal diagonal
                        count = 0;
                        for(j = 0; j < 5;="">
                                if(arr[j][j] == 0)
                                        count++;
                        }

                        if(count == 5){
                                printf("BINGO winner!");
                                winner = 1;
                        }
                }

                if(winner == 0){
                        // check secondary diagonal
                        count = 0;
                        if(arr[0][4] + arr[1][3] + + arr[2][2] + + arr[3][1] + + arr[4][0] == 0){
                                printf("BINGO winner!");
                                winner = 1;
                        }
                }

                if(winner == 0)
                        printf("No winner!");
        }

}

Jun 08, 2022
SOLUTION.PDF

Get Answer To This Question

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here