c++ - 我可以以某种方式将循环内的参数与第一个循环内的参数联系起来吗?
问题描述
#include <iostream>
using namespace std;
int main()
{
int x, y, z;
cout << "how many elements? " << endl;
cin >> x;
int arr[x];
for(int i = 0; i < x; i++)
{
cout << "give number" << endl;
cin >> arr[i];
}
cout << endl;
y = 0;
z = 0;
// for(int i = y; i >= 0; i-z)
while (z < x)
{
for(int i = y; i < x; i++)
{
for(int i = z; i < x-y; i++)
{
cout << arr[i] << " ";
}
cout << endl;
y++;
}
z++;
cout << z;
}
// while (z < x);
return 0;
}
我希望循环z
中的参数与第二个循环中的while
参数链接。我希望程序打印数字从 1 到,然后从 2 到,依此类推,直到它只打印。i=z
for
n
n
n
不要介意cout<<z;
第 30 行中的这一点,我正在检查这是否有效。
解决方案
我不知道您所说的“与 z 链接”是什么意思,但这是循环应该做的事情:
for (int z = 0; z < x; ++z) // NOTE: get rid of outside z
{
for(int i{z}; i < x; ++i)
std::cout << arr[i] << " ";
std::cout << std::endl;
}
内部循环遍历数组的所有值,从 z 开始,到 x-1 结束。由于 z 递增,下一个循环将从下一个位置开始,从 z 加一开始,到 x-1 结束。
也改变:
int arr[x];
至:
int* arr = new int[x];
并在最后添加这一行:
delete [] arr;
这应该被添加和更改,因为 C++ 不支持可变长度数组。但是,它确实支持指向被视为数组的内存块的指针。您还应该在完成后删除您使用的内存。
推荐阅读
- python - 什么是 PEP-249?
- sql - 奇怪的 WHERE 语句,其行为类似于 GROUP BY?
- python - 无法在 Python 2.7 中为 ldap 设置 TIMEOUT
- java - 如何在 Java 中比较两个图像?
- r - 将日期过滤器添加到 Flexdashboard
- python - 如何将模型实例连接到 django 中的用户?
- pine-script - 在 pine 脚本中获取先前的交易利润百分比
- flask - 如何将随机颜色十六进制从烧瓶后端发送到 html
- javascript - jQuery 替代 div 元素
- android-room - Room.databaseBuilder 中的数据库名称是什么?