m0_61817339
2021-10-04 15:54
采纳率: 50%
浏览 44

c++翻转数组并相加,求帮助

给定五个数字的数组(如1 2 3 4 5)
将其翻转(5 4 3 2 1)随后和原来的数组相加,得到新数组,并且如果相加大于十则只取个位数字

完全不会😭😭 翻转的话,只把1、5,2、4位置对调?但这样也太傻了😭

  • 好问题 提建议
  • 收藏

3条回答 默认 最新

  • CSDN专家-link 2021-10-04 15:56
    已采纳

    用两个指针分别指向数组头和数组尾,然后进行交换,随后指针向中间移动,逐个交换即可

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • 数组是顺序存储在内存中的,如果你要翻转后放在原位就只能两两交换,如果反转后的数组存在新的空间中,则可以使用malloc申请相同大小的空间,然后反向遍历原数组,将元素依次放在新的空间中来达到数组翻转的目的

    评论
    解决 无用
    打赏 举报
  • qfl_sdu 2021-10-04 16:04

    参考如下:

    #include <iostream>
    using namespace std;
    
    int main()
    {
        int a[5]={1,2,3,4,5};
        int i,j,sum = 0;
        int b[5];
        //翻转数组
        for(i = 0;i<5;i++)
            b[4-i] = a[i];
    
        //如果不借助b实现a的翻转
    
        /*for(i=0;i<5/2;i++)
        {
            int t = a[i];
            a[4-i] = a[i];
            a[i] = t;
        }*/
    
    
        //相加
        for(i=0;i<5;i++)
            sum += a[i]+b[i];
        //判断和
        cout << sum%10 ;//只取个位
        return 0;
    }
    
    
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题