gpt4 book ai didi

c++ - 十进制本身转换为十六进制

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:09:59 24 4
gpt4 key购买 nike

我有一个小问题。我创建 2D int 数组。当我计算它时,我得到了十六进制数而不是十进制数。我正在使用 Dev C++。

#include <cstdlib>
#include <iostream>

using namespace std;

int main()
{
const int max=9;
int ar[max][max]={
{0,6,0,0,2,0,0,4,0},
{5,0,0,3,0,0,0,0,0},
{0,8,0,0,1,0,0,0,0},
{6,0,0,0,0,7,0,0,0},
{0,3,7,0,0,0,2,8,0},
{0,2,0,8,0,0,0,3,0},
{0,0,0,0,0,0,0,0,0},
{7,0,0,4,0,0,0,0,1},
{0,0,0,0,6,0,0,2,0}};

for (int i=0;i<max;i++){
for(int j=0;j<max;j++){
cout<<ar[i,j]<<" ";
}
cout<<"\n";
}

system("pause");
return 0;
}

作为返回,我得到这个 http://www.dropmocks.com/mf8wl

最佳答案

那是因为你掉进了运营商,的狡猾陷阱!

首先,C 没有多维数组作为原语。正如您在此处声明的那样,二维数组只是“数组的数组”。因此,使用 a[i,j] 访问数组是没有意义的。 .您应该首先使用 a[i] 获取“行”然后用 [j] 索引“列” ,从哪里a[i][j] .

那么,为什么你的代码可以编译?因为,是C中的运算符。a,b的评价实际上是表达式 a 的求值, 然后 b , 返回评估 b 的结果。因此,您实际上是在打印 a[j]在这里,这是一个 int[] , 以十六进制打印为数组的地址。

为什么要有运算符 ,完全没有,你问?除了令人困惑之外,它主要用于像 for 这样的结构。 ,您可能需要在初始化程序或增量构造中使用多个表达式,即 for (j = 0, i = 0; i + j < k; i++, j += 2)或类似的。

关于c++ - 十进制本身转换为十六进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7980854/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com