如何更改二维数组中的值?
How to change values in a 2-dimensional array?
>我有一个简单的程序来查找两个数字的较大数量并将它们存储在数组的第一行中。
数组是 arr[tot][2],我想将 arr[tot][0] 中的每个元素与 arr[tot][1] 中的元素进行比较,但它给了我无效的数组分配。 我应该使用哪个函数/方法来做到这一点?
for(i=0;i<tot;i++)
{
if(arr[i,1]>arr[i,0])
{
arr[i,0]=arr[i,1]}
}
完整程序
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
//Input
int tot = 23;
int arr[tot][2] = {
{9272992,-5268711},
{-6457223,-8368810},
{-3415057,-2776446},
{-6492757,-3453386},
{4313482,4783138},
{5573672,8360909},
{-2546018,2224083},
{1267093,4700254},
{6136723,9042717},
{1277125,2796189},
{-2062877,2036481},
{6089545,-6182241},
{-8795303,6074456},
{8152425,785931},
{-5134200,4319924},
{6820437,-5861208},
{9051213,-9636786},
{-4230018,-4363843},
{-2413233,-722776},
{2182770,-8099750},
{-5939638,-2243558},
{-9738840,1514344},
{9980524,1528253}
};
//the comparing
int i;
for(i=0;i<tot;i++)
{
if(arr[i,1]>arr[i,0])
{
arr[i,0]=arr[i,1]
}
}
for(i=0;i<tot;i++)
{
cout<<arr[i,0]<<" ";
}
return 0;
}
感谢您回答我的问题:)也感谢您的反对票,这真的帮助我理解这里只允许聪明和高级的问题,不欢迎愚蠢的错误和语法错误。
@songyuanyao的评论是正确的。如果要访问 2D 数组中的值,则需要使用arr[i][0]
。
您的代码有三个错误:
-
声明数组时,元素数必须是常量。所以
int tot = 23;
应该const int tot = 23;
-
arr[i,0]
是一个有效的表达式,但不应在此处使用。您应该在整个程序中使用语法arr[i][0]
。 -
您错过了一个分号。
#2的一些解释:错误"数组分配无效"是由于行arr[i,0]=arr[i,1]
(您在这里也错过了;
(。在arr[i,0]
中,逗号是一个逗号运算符,它返回第二个操作数的值。所以arr[i,0]
等价于arr[0]
,它是一个一维数组。同样arr[i,1]
是arr[1]
,这也是一个一维数组。但是数组不是可修改的 L 值,因此arr[i,0]=arr[i,1]
给出"数组分配无效"错误。这也解释了为什么arr[i,1]>arr[i,0]
没有给出编译时错误,但它是一个运行时错误。
不要使用此语法
if(arr[i,1]>arr[i,0])
{
arr[i,0]=arr[i,1]
}
相反,请尝试使用这个:
if(arr[i][1]>arr[i][0])
{
arr[i][0]=arr[i][1]
}
相关文章:
- 将值从二维数组输出到文本文件
- 在二维数组中查找最小值和最大值?
- 移动二维数组中的字符
- 如何正确填充在堆上分配的二维数组?
- 传递二维数组时出现问题
- 具有随机数的二维数组不会更改
- 如何在C++中获取二维数组中最少的一列数?
- 如何使用用户输入变量制作二维数组?
- C++ 中动态二维数组的访问冲突
- 遍历二维数组的所有子数组
- 将二维数组的所有元素插入到一维数组中
- 在函数中传递二维数组
- 为什么指针在对二维数组进行排序时无法正常工作?
- 创建 std::string 的二维数组的最佳做法
- 如何将文本文件读取到二维数组中并以 c++ 打印
- 元素在二维数组 c++ 中的出现次数
- 如何更改二维数组中的值?
- 如何使用一维数组更改二维数组中的值?
- 一维和二维数组中不需要的值更改,从 C++ 代码中的函数返回值
- 函数将二维数组更改为1