SCAU:2023年ACM校赛网上预赛(23级组别)

本文介绍了一个C语言程序,用于根据输入的两个正整数a和b,按照顺序或倒序用英文从a到b进行计数。程序利用数组存储英文数字并实现了函数f来确定对应的数字索引。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

报数

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>
#include <string.h>

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>=ed;i--)
        {
            printf("%s ",numbers[i]);
        }
    }
    printf("\n");
}


int main()
{
    int t,i;
    scanf("%d",&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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zero_019

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值