本文介绍: 给定两个整数ab,用英语从ab计数。根据a和b的大小关系,可能是正着数,也可能是倒着数

报数

Time Limit:1000MS  Memory Limit:65535K

题型: 编程题   语言: 不限定

给定两个整数a和b,用英语从a到b计数。根据a和b的大小关系,可能是正着数,也可能是倒着数。

输入格式

第一行包含t(1<=t<=10),即随后的测试用例数。每行包含两个小写英文a和b(0<=a,b<=10)。

输出格式

对于每个测试用例,从a到b进行计数。每两个连续单词通过单个半角空格间隔每个英语单词必须小写。

输入样例

3
zero nine
nine five
ten ten

输出样例

zero one two three four five six seven eight nine
nine eight seven six five
ten

#include <stdio.h&gt;
#include <string.h&gt;

char numbers[][10]={"zero","one","two","three","four","five","six","seven","eight","nine","ten"};
int f(char *word)
{
    int i;
    for (i=0;i<=10;i++)
    {
        if (strcmp(word,numbers[i])==0)
        {
            return i;
        }
    }
}

void print(int st,int ed)
{
    int i;
    if (st<=ed)
    {
        for (i=st;i<=ed;i++)
        {
            printf("%s ",numbers[i]);
        }
    }
    else
    {
        for (i=st;i&gt;=ed;i--)
        {
            printf("%s ",numbers[i]);
        }
    }
    printf("n");
}


int main()
{
    int t,i;
    scanf("%d",&amp;t);
    char input[t*2][10];
    for (i=0;i<t*2;i++)
    {
        scanf("%s",input[i]);
    }
    for (i=0;i<t*2;i+=2)
    {
        int st=f(input[i]);
        int ed=f(input[i+1]);
        print(st,ed);
    }
    return 0;
}

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注