C++数组基础题目“数组倒序输出”

作者: opbnbjs | 来源:发表于2017-11-25 20:28 被阅读44次

先来看一下题目描述

将一个数组中的值按逆序重新存放。例如,原来的顺序为8,6,5,4,1。要求改为1,4,5,6,8。

输入

输入为两行:第一行数组中元素的个数n(1<n<100),第二行是n个整数,每两个整数之间用空格分隔。

输出

输出为一行:输出逆序后数组的整数,每两个整数之间用空格分隔。

样例输入

5

8 6 5 4 1

样例输出

1 4 5 6 8

这题的关键就在"倒序"上

倒序输出的方法有很多

为了让初学者很快get到新技能

我今天要讲到的,就是用for语句倒序输出

先看一下程序体(完整版)

#include

using namespace std;

int main()

{

int b,c;

int a[100];

cin>>b;

for(int i=1;i<=b;i )

{

cin>>a[i];

}

for(int j=b;j>0;j--)

{

c=a[j];

cout<<c<<" ";

}

return 0;

}

这个程序只需要用iostream就能解决(为了方便新手,我没有使用标准输入输出)

我们只用了两个循环,而第一个循环只是拿来正序输入的

这是第一个循环:

for(i=1;i<=b;i )

{

cin>>a[i];

}

此处用的是最基本的for语句读入数组法

之前读入了一个b,b就是这个数组的元素的数量。

i的初值要设为1

如果i的初值设为0那么就会多读入一个数据

(道理:若从一开始,假设我们要读入5个数据,将会是:1.2.3.4.5   5个数据

假设从0开始,将会是:0.1.2.3.4.5  6个数据)

i<=b   表示有b个数据

(解释一下为什么是<=b而不是<b或=b或==b)

先说

如果写=b,那么就更不科学,在c中,一个等号表示赋值,i=b相当于把i的值赋给b,这在for语句中是不合规矩的,会报错

如果写==b,在c中,"=="表示判等,意思说只有在i等于b的时候才会执行后面的运算。虽然不会报错,但是没有达到我们想要的效果)

i 相当于i=i1

下面的cin>>a[i]就是读入数组。

那么我刚才int的a[100]数组中的前b个元素已经赋值了

而后的for就是用来倒序输出的

for(int j=b;j>0;j--)

{

c=a[j];

cout<<c<<" ";

}

首先,j=b

先让j等于b,也就是正序的最后一个数据,它将成为倒序的第一个数据

j>0

大于0的整数,也就是说j最小为1

这个1代表正序的第一个元素,现在1成了最小值,就相当于让以前的第一个成了现在的最后一个

至此,我们已成功的让正序的第一个元素成为了倒序的最后一个元素。正序的最后一个元素成了倒序的第一个元素

j--相当于j=j-1

那么在这个循环语句中,j的值将会是b,b-1,b-2,b-3.....3.2.1

也就是a[b],a[b-1],a[b-2]......a[1]

成功将数组倒序

但是还要输出,我们就将就这个循环来进行输出

这里我把a[j]赋给了c,只是为了图个清爽

也可以不用c

将就循环,把a[j]的值赋给c,在输出一个空格

(意思是说a[j]的值在变,而c的值也跟着它变,它变一次,c就取了它的值然后输出,它的值再变,c的值又跟着变然后在输出,如此反复)

然后return 0

到此,程序结束

相关文章

  • C++数组基础题目“数组倒序输出”

    先来看一下题目描述 将一个数组中的值按逆序重新存放。例如,原来的顺序为8,6,5,4,1。要求改为1,4,5,6,...

  • 数组

    1、数组倒序输出 2、删除数组中指定下标对象 3、根据条件获取数组中指定对象下标 4、遍历数组 4、过滤数组

  • Leetcode.347.Top K Frequent Elem

    题目 给定一个数组,输出出现频率最多的K个数。 思路 先用map计算每个数的出现频率,将map转化为数组进行倒序排...

  • 一维数组

    一维数组通常用于数组的查找和排序 排序 1:倒序输出 2:升序or降序排列冒泡排序法 查找

  • Leetcode.344.Reverse String

    题目 给定一个字符数组,对数组进行倒序。只是用O(1)的额外内存空间。 思路 直接倒序。 总结 这个题是乱入的吧。

  • 9月12日

    今天做练习有两个心得 1.循环得到的结果,倒序输出 需要用到数组,把结果放在数组中,再倒序输出。 例:把十进制数字...

  • 可变数组--倒序输出

  • iOS - 字符串倒序输出

    核心算法:【只对英文字母数字有效】 核心技术点 数组倒序输出

  • 数组倒序

    NSMutableArray * dataArray=[[NSMutableArray alloc]initWit...

  • [49]回文数组-搜狐2018秋

    1.题目描述 对于一个给定的正整数组成的数组a[] ,如果将a 倒序后数字的排列与a 完全相同,我们称这个数组为“...

网友评论

    本文标题:C++数组基础题目“数组倒序输出”

    本文链接:https://www.haomeiwen.com/subject/nythbxtx.html