You've successfully subscribed to The Poor Coder | Hackerrank Solutions
Great! Next, complete checkout for full access to The Poor Coder | Hackerrank Solutions
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.
Hackerrank For Loop in C Solution

Hackerrank For Loop in C Solution

Beeze Aal
Beeze Aal

Objective

In this challenge, you will learn the usage of the for loop, which is a programming language statement which allows code to be repeatedly executed.

The syntax for this is

for ( <expression_1> ; <expression_2> ; <expression_3> )
    <statement>
  • expression_1 is used for intializing variables which are generally used for controlling the terminating flag for the loop.
  • expression_2 is used to check for the terminating condition. If this evaluates to false, then the loop is terminated.
  • expression_3 is generally used to update the flags/variables.

A sample loop will be

for(int i = 0; i < 10; i++) {
    ...
}

Task

For each integer  in the interval  (given as input) :

  • If , then print the English representation of it in lowercase. That is "one" for , "two" for , and so on.
  • Else if  and it is an even number, then print "even".
  • Else if  and it is an odd number, then print "odd".

Input Format.

The first line contains an integer, .
The seond line contains an integer, .

Constraints.

Output Format.

Print the appropriate english representation,even, or odd, based on the conditions described in the 'task' section.

Note:

Sample Input

8
11

Sample Output

eight
nine
even
odd

Solution in c

Approach 1.

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



int main() 
{
    int a, b;
    scanf("%d\n%d", &a, &b);
  	// Complete the code.
   
    char labels[11][6] = {"one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "even", "odd"};
    int labels_index;
  	for (int i=a; i<=b; i++) {
        labels_index = i <= 9 ? i - 1 : 9 + i % 2;
        printf("%s\n", labels[labels_index]);
    }

    return 0;
}


Approach 2.

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



int main() 
{
    int a, b;
    scanf("%d\n%d", &a, &b);

     char *stri[] = {"one","two","three","four","five",
                                "six","seven","eight","nine"};
    for(int i=a;i<=b;i++)
    {
    if (i < 1)
        return 1;
    
    if (i >= 1 && i <= 9)
        printf("%s\n",stri[i-1]);
    else if(i%2==0)
        printf("even\n");
    else
        printf("odd\n");
    }

    return 0;
    
}


Approach 3.

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

char *oddOrEven(int n) {
    return (n % 2) ? "odd" : "even";
}


int main() 
{
    int a, b;
    scanf("%d\n%d", &a, &b);

    char *numbers[10] = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
    
    for (int n = a; n <= b; n++) {
        if (n < 10) {
            printf("%s\n", numbers[n]);
        }
        else {
            printf("%s\n", oddOrEven(n));
        }
    }
    return 0;
}