欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

HackerRank - C语言 - Conditionals and Loops - Conditional Statements in C

程序员文章站 2024-02-29 11:43:16
...

Conditional Statements in C

任务

给定一个正整数,n,满足以下条件:

  • 如果 1≤n≤9,那么打印该数字对应的英文。
  • 如果 n>9,那么打印Greater than 9

解答

#include <assert.h>
#include <limits.h>
#include <math.h>
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char* readline();



int main()
{
    char* n_endptr;
    char* n_str = readline();
    int n = strtol(n_str, &n_endptr, 10);

    if (n_endptr == n_str || *n_endptr != '\0') { exit(EXIT_FAILURE); }

    // Write Your Code Here
    if(n<10){
        if(n==1){
            printf("one");
        }
        else if(n==2){
            printf("two");
        }
        else if(n==3){
            printf("three");
        }
        else if(n==4){
            printf("four");
        }
        else if(n==5){
            printf("five");
        }
        else if(n==6){
            printf("six");
        }
        else if(n==7){
            printf("seven");
        }
        else if(n==8){
            printf("eight");
        }
        else{
            printf("nine");
        }
    }
    else {
    printf("Greater than 9");
    }
    return 0;
}

char* readline() {
    size_t alloc_length = 1024;
    size_t data_length = 0;
    char* data = malloc(alloc_length);

    while (true) {
        char* cursor = data + data_length;
        char* line = fgets(cursor, alloc_length - data_length, stdin);

        if (!line) { break; }

        data_length += strlen(cursor);

        if (data_length < alloc_length - 1 || data[data_length - 1] == '\n') { break; }

        size_t new_length = alloc_length << 1;
        data = realloc(data, new_length);

        if (!data) { break; }

        alloc_length = new_length;
    }

    if (data[data_length - 1] == '\n') {
        data[data_length - 1] = '\0';
    }

    data = realloc(data, data_length);

    return data;
}

相关标签: HackerRank