给定五个数字的数组(如1 2 3 4 5)
将其翻转(5 4 3 2 1)随后和原来的数组相加,得到新数组,并且如果相加大于十则只取个位数字
完全不会😭😭 翻转的话,只把1、5,2、4位置对调?但这样也太傻了😭
用两个指针分别指向数组头和数组尾,然后进行交换,随后指针向中间移动,逐个交换即可
数组是顺序存储在内存中的,如果你要翻转后放在原位就只能两两交换,如果反转后的数组存在新的空间中,则可以使用malloc申请相同大小的空间,然后反向遍历原数组,将元素依次放在新的空间中来达到数组翻转的目的
参考如下:
#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;
}