Home > front end >  How to print random even numbers "n" times? Print the number many times mentioned in the o
How to print random even numbers "n" times? Print the number many times mentioned in the o

Time:10-07

Can someone help me with this? I want to write a code that will print random even number "i" times. Here "i" is variable and input (i is always greater than 0). Example: Input (4) I want output to be (4,4,4,4), Input (2) I want output to be (2,2). I want to print the number many times mentioned in the input. Here is the question

CodePudding user response:

Here, the term "random" may not be appropriate.

In order to achieve this, you can:

  • get the numerical representation of the user input. To do so you can use strtol which returns a number.
  • use a for-loop print the N occurrences using the standard printf function along with the number formatter %d.

For instance:

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

int main(int argc, char **argv)
{
    int number;
    int i;

    /* `argc` contains the total number of arguments passed to the
     * application. There is always at least one argument (i.e.: the
     * application name). Here, we ensure the user has given a argument
     * which we expect to be the number (i).
     *
     * If there are less than two arguments given then the user has
     * not passed anything => the command line was "$ ./a.out". */
    if (argc < 2) {
        goto usage;
    }

    /* Get the user input number by parsing the user given argument.
     * As arguments are string of characters, this function transforms
     * the string "1234" into 1234. The result is a number we will be
     * able to manipulate (add, sub, mul, div, etc.). */
    char *p;
    number = strtol(argv[1], &p, 10);

    /* We want to ensure the input was really a number.
     * The `strtol` function provides a way to verify whether the
     * given string is correctly formatted by giving the last character
     * of the string. In case the number is not formatted correctly,
     * then the last char is not the NULL terminating char. */
    if (*p != '\0') {
        goto usage;
    }

    /* Ensure the number is positive. */
    if (number < 0) {
        goto usage;
    }

    /* This for loop executes "number" of times. We have a counter
     * `i` which value will be incremented from [ 0 to "number" [.
     * Each time we execute the loop, we print the number. */
    for (i = 0; i < number; i  ) {
        printf("%d ", number);
    }
    printf("\n");

    return 0;

usage:
    // TODO
    return 1;
}

CodePudding user response:

for me, the easiest way is to read input from the user and just display the number "n" times. Here's an example:

#include <stdio.h>

int main(int argc, char **argv) {
    int user_input, is_correct; // user_input is a number to be displayed

    // scanf reads input from the user, %d is an integer
    is_correct = scanf("%d", &user_input);

    // check if user entered a number
    if(!is_correct) {
        printf("Incorrect input, enter number!");;
        return -1;
    }

    // check if number is even
    if(user_input % 2 != 0) {
        printf("Number is not even, try again!");
        return -1;
    }

    // display number
    for(int i = 0; i < user_input;   i) {
        printf("%d ", user_input);
    }

    return 0;
}
  •  Tags:  
  • c
  • Related