首页 > 试题广场 >

神秘石像的镜像序列

[编程题]神秘石像的镜像序列
  • 热度指数:2442 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt}在远古遗迹中,探险家们在石碑上发现了一系列关键信息,这些信息被刻录成一串整数序列,以数字 0 作为结束标志。
\hspace{15pt}为了触发机关,需要将这串刻碑数字倒序读取(不包括结束标志 0)。
\hspace{15pt}现在,请你编写程序,帮助探险家完成这一倒序读取的任务。

输入描述:
\hspace{15pt}在一行内输入若干非负整数,以 0 作为结束标志,每两个整数之间用空格分隔。 
\hspace{15pt}保证整数个数不超过 100,且满足 \left(0 \leqq a_i \leqq 2^{31}-1\right)


输出描述:
\hspace{15pt}在一行内按空格分隔输出倒序后的整数序列(不包含结束标志 0)。
示例1

输入

8 15 3 42 7 0

输出

7 42 3 15 8

说明

在第一个样例中: 
\hspace{8pt}\bullet\,去掉结束标志 0,原序列为 [8,15,3,42,7]
\hspace{8pt}\bullet\,倒序后输出 \text{7 42 3 15 8}
示例2

输入

10 20 30 40 50 0

输出

50 40 30 20 10

备注:
对于 100\% 的数据,保证 0 \leq a_i \leq 2^{31} - 1,数字个数不超过 100
#include <stdio.h>
int main()
{
    int arr[100] = { 0 };
    int i = 0;
    int n = 0;
    //输入
    while (1)
    {
        scanf("%d", &arr[i]);
        if (arr[i] == 0)
        {
            break;
        }
        i++;
    }
    n = i;//n是0的下标
    //倒序
    int left = 0;
    int right = n-1;
    int tmp = 0;
    while (left < right)
    {
        tmp = arr[left];
        arr[left] = arr[right];
        arr[right] = tmp;
        left++;
        right--;
    }
    for (i = 0;i < n;i++)
    {
        printf("%d ", arr[i]);
    }



    return 0;
}

发表于 2025-07-11 15:03:36 回复(0)
#include <stdio.h>

int main() {
    int num, a = 0;
    int n[100];
    while (scanf("%d", &num)==1 && num != 0&&a<=100)
    {
        n[a] = num;
        a++;
    }  
    while(a!=0)
    {
        a--;
        printf("%d ", n[a]);
    }

    return 0;

}
发表于 2025-07-06 22:26:51 回复(0)