修改元素
数组中的元素是可以修改的,修改方式就是找到对应的索引值进行修改,比如:
int arr[ 5 ] = { 35, 22, 78, 55, 60 };
索引号 0 1 2 3 4
如果想修改 78 ,它对应的索引号就是 2,我们可以这样操作
arr [ 2 ] = 42 ;
// 通过索引号就可以将对应位置的数值修改了。以上就是如何修改数组中某个特定元素的基础方式。在日常开发中我们基本是通过遍历数组形式,进行数值匹配,找到后将我们新值替换上去,其实方式就像是查找的升级版,即:先查询,再修改,同样我们可以使用上一篇的函数,对其进行一些改动即可。
#include <iostream>
using namespace std;
void func( int arr[ ] , int size, int num1, int num2 )//arr[ ] :数组,size :数组长度,num1 是想要修改的目标值, num2是替换值
{
bool find = false; // 这个变量是用于在没有与输入值匹配时,进行数据反馈的
for (int i = 0; i < size ; i++ )
{
// 输入值会与每一轮循环得到的数组值进行 if语句的比较
if ( num1 == arr[ i ] )
{
find = true; // 进入 if语句,则说明输入值找到了和数组中一样的值,
我们将这个 bool 变量改为 true,然后输出下方内容,
输出完毕,则使用 break 跳出循环
arr [ i ] = num2;
break; // 跳出循环
}
}
if ( ! find )
{
cout << "没有与传入值一样的数值。" <<endl;
}
// 这里的 find 布尔值,通过对 find 取值的判断决定是否进入,如果
我们在for循环中始终没有满足 num == arr[ i ] 这个条件,则说明该数组
没有与输入相同的元素,那么 find 的值就没有被修改,还是初始值:false,
这里判断条件为“取反”,则将 false 改为 true,因此满足 if 条件,
则进入该语句块,输出下方内容,即:没有与传入值一样的数值。
但是,一旦上方 for循环满足 num == arr[ i ] 这个条件,则语句块中的
find 就被改为 true,跳出循环后,再来到 if ( ! find )这里,
取反后 就变为false,则不能进入该语句块,所以也就不会输出下面的内容了。
}
int main()
{
int arr[ 5 ] = { 15, 21, 39, 88, 96 };
cout<<"原数组:";
for(int i = 0 ; i < 5 ; i++ )
{
cout << arr [ i ] << " ";
} // 先输出一遍原数组内容
// 调用函数,传入参数,将 88 改为 77
func(arr, 5, 88, 77);
cout<<"新数组:";
for(int i = 0 ; i < 5 ; i++ )
{
cout << arr [ i ] << " ";
}
// 再传入一个数组中没有的元素
func(arr, 5, 26, 77);
}
输出:原数组:15 21 39 88 96
新数组:15 21 39 77 96
没有与传入值一样的数值。
通过这个案例,我们看到修改数组元素就是先进行查找,找到了就可以修改,并且是直接替换这个索引号处的值,在实际应用中这个方法也是较为常见的,开始讲的那种是最最初级的方式,它是修改元素的基础,但不是主要应用手段。这个案例才是应用较为广泛的方式。


