C++多维双数组未按预期工作
C++ multidimensional double array not working as intended
作为一名C#开发人员,我在学习C++时遇到了使用多维数组的问题。
问题是,我想用任何值填充一个双[][],然后打印它。
这是我的输出:
Double
0 0 0 0 0
10 0 0 0 0
10 0 0 0 0
10 0 0 0 0
10 0 0 0 0
Int
0 1 2 3 4
0 1 2 3 4
0 1 2 3 4
0 1 2 3 4
0 1 2 3 4
我想要的是Double输出类似于int输出。或者解释为什么两者的行为不同以及如何解决
#include <stdio.h>
#include "timer.h"
#define n 5
double A[n][n];
int B[n][n];
int main()
{
int i,j;
for (i=0; i<n; ++i)
{
for (j=0; j<n; ++j)
{
A[i][j] = (double)j;
B[i][j] = j;
}
}
//Print Double array
for (i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%d ",A[i][j]);
}
printf("n");
}
printf("nn");
//Print Int array
for (i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%d ",B[i][j]);
}
printf("n");
}
return 0;
}
答案在于如何调用printf
。转换说明符%d
需要一个整数参数。你给它一个双重论证,这是未定义的行为。
要实现正确的行为,请在双数组上的循环中使用%f
。
旁白:您的代码实际上是C,而不是C++。
相关文章:
- 将返回值存储在函数指针数组的指针中是如何工作的?
- std::数组边界检查如何工作?
- 声明C++具有动态大小的数组类型在 Linux 中工作正常,但不能在 Windows 中工作
- 为什么指针在对二维数组进行排序时无法正常工作?
- C++中循环和 C 样式数组的范围工作
- 为什么重载运算符"="动态数组的类上无法正常工作?C++
- 为什么断点显示数组的第二个值是一个大数字?额外学分工作
- 为什么必须动态分配扩展数组才能使此功能正常工作C++
- 我正在努力处理多维数组输入和输出,我管理输入,但是打印无法按计划工作
- 将类型化数组写入子进程 stdin 无法正常工作
- 当删除 [] 指针工作时,为什么无法获得指向的数组大小?
- 如果带有字符数组的语句无法正常工作
- 使用 for 循环打印字符串数组无法正常工作 (C++)
- 字符串文字到 char 数组的转换如何在C++中实际工作
- 澄清了 strcpy() 在像这样初始化字符数组时的工作 *Arr.
- 在 C++ 中使用递归填充 D2 数组,有时工作正常,其他时会引发异常
- 为什么C ,Devstudio,数组索引工作
- 构建对象数组是如何工作的?我被这个例子困住了
- 你不能在 void 指针上使用指针算法,那么 void 指针数组是如何工作的呢?
- 我用于汇总数组元素的 c++ 代码无法正常工作