将数组中的数逆序存放

7-1 将数组中的数逆序存放

分数 10
作者 C课程组
单位 浙江大学
本题要求编写程序,将给定的n个整数存入数组中,将数组中的这n个数逆序存放,再按顺序输出数组中的元素。

输入格式:

输入在第一行中给出一个正整数n(1≤n≤10)。第二行输入n个整数,用空格分开。

输出格式:

在一行中输出这n个整数的处理结果,相邻数字中间用一个空格分开,行末不得有多余空格。

输入样例:

4
10 8 1 2

输出样例:

2 1 8 10

解题思路

使用scanf函数去接收数字,然后使用getchar函数接收空格,循环接收即可。
我们先编写循环接收的一个例子

#include <stdio.h>
int main()
{
    int n;
    char ch;
    do
    {
        scanf("%d", &n);
        ch = getchar();
        printf("%d", n);
    } while (ch != '\n');

    return 0;
}

输出结果

14
13
12
11

改写为for循环,把接收的数字存入数组中,然后反向输出。

#include <stdio.h>

int main()
{
	int n, i, num;
	scanf("%d", &n);
	int arr[n];
	char ch;

	for (i = 0; i < n; i++)
	{
		scanf("%d", &num);
		arr[i] = num;
		ch = getchar();
		if (ch == '\n')
		{
			break;
		}
	}

	for(i=n-1; i>=0; i--)
	{
		if(i<=0)
		{
			printf("%d\n",arr[i]);
		}
		else
		{
			printf("%d ",arr[i]);
		}

	}
	return 0;
}


运行结果

14 13 12 11
posted @ 2022-10-15 23:37  蠢蛋快跑  阅读(608)  评论(0)    收藏  举报