c++ - 您如何修复阵列以使其正确?
问题描述
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
/* Hello! I didn't know if we had to use functions, because the assignment didn't say. Please tell me if you would like to resubmit and add functions.*/
int num1=1, num2=2, num3=3, num4=4, num5=5, num6=6, i;
for (i=1; i<=6; i++) {
if (num1=i) {
num1=num1;
}
else if (num2=i) {
num2=1;
num2=num2*2;
}
else if (num3=i) {
num3=1;
num3=num2*2*2;
}
else if (num4=i) {
num4=1;
num4=num2*2*2*2;
}
else if (num5=i) {
num5=1;
num5=num2*2*2*2*2;
}
else if (num6=i) {
num6=1;
num6=num2*2*2*2*2*2;
}
}
int array[2][6] = {{num1, num2, num3, num4, num5, num6},{0, 1, 2, 3, 4, 5}};
for (int row=0; row<2; row++) {
for (int column=0; column<6; column++) {
cout << array[2][6] << " ";
}
cout<<endl;
}
cout<<num1<<" "<<num2<<" "<<num3<<" "<<num4<<" "<<num5<<" "<<num6<<endl;
return 0;
}
这应该返回
1 2 4 8 16 32
0 1 2 3 4 5
1 2 4 16 32
目前,它返回一些非常不同的东西......我该怎么办?
另外,我知道这是一种非常低效的方法,所以如果你有更好的方法,我也愿意接受。在这个数组中,2^i
只存储在第 i 个位置。
解决方案
而不是num1=i
你应该使用num1==i
. 您在数组 [2] [6] 中只有两行,并且您想打印 3 行,因此您应该在数组 [2][6] 中添加另一行 {num1, num2, num3, num4, num5, num6}。替换cout << array[2][6] << " ";
为
cout << array[row][column] << " ";
推荐阅读
- json - 嵌套 JSON 的叶子作为 JS 中的完整数据
- c# - 使用 Windows 标识安全地保存用户数据
- c++ - 来自枚举值的 C++ decltype
- node.js - 尽管存在数据,但在 GraphQL 查询中日期字段返回为空
- angular - 为什么 Firestore 数据检索适用于 ng-serve 版本但在 ng-build 版本中失败
- java - 使用 java 连接到 Microsoft SQL 服务器的 JDBC
- c++ - 如何转换不同类型的迭代器
- ruby - 如何运行 ruby 脚本来解压缩文件?
- python - Python lxml xpath无法获取文本
- tsql - 在整个条目中插入带有案例的插入