嵌套循环可以在单个循环上抓取
Can nested loop be grabbed on a single loop?
这是代码:
#include <stdio.h>
int main() {
int i, j;
for(i = 0; i < 10; i++) {
for (j = 0; j < i; j++){
printf("*");
}
printf("n");
}
return 0;
}
上面的代码可以在底部像这样在单个循环上循环吗?(虽然这对我不起作用。
#include <stdio.h>
int main() {
int i, j;
for (i = 0, j = 0; i < 10, j < i; i++, j++){
printf("*");
}
printf("n");
return 0;
}
是的,这是可能的,但你应该查看不同的运算符做什么(并考虑你的代码应该做什么)。
for (int i = 10; i <= 100; i++) {
if (i % 10 <= i / 10) {
printf("*");
}
if (i % 10 == 0) {
printf("n");
}
}
不明智。您希望为每个值循环遍历 j
的每个值 i
,这意味着一个嵌套循环。第二个示例将在每次迭代后递增i
和j
,这是非常不同的。
原则上,你可以从 0 循环一个变量到(至少)45,并做一些算术来找到 i
的值,并从中j
;但这会很难理解,而且效率可能更低,所以我不会建议一种方法来做到这一点。
试一试,它会正常工作,无需任何额外的迭代。
int count=1,tmp=1;
for (int i = 1; i <= 10; i++)
{
printf("*");
if (count == i) {
printf("n");
tmp++;
count+=tmp;
}
}
#include <stdio.h>
int main() {
int i = 10, j = 0, k = 1;
while(j++ < i)
(j == k && j <i) ? (printf("n"),k+=1,j=0):printf("*");
return 0;
}
你可以这样写,但它不可读。
#include <stdio.h>
int main() {
int i, j;
for(i=0, j=0; j<i? :(printf("n"), j=0, i++, i<10); j++) {
printf("*");
}
return 0;
}
您可以使用逗号运算符来处理此类事情,尽管您的条件部分不正确。
它应该是
for (i = 0, j = 0; i < 10 && /* perhaps || here*/ j < i; i++, j++){
相关文章:
- 为什么这个加载函数只抓取文件中的第一件事?
- 无法使用 OpenCv 3.4.5 从具有C++ dll 的网络摄像机 (rtsp) 中抓取帧
- 如何从日志文件中抓取状态代码?(在 C++ 中)
- DXGI API:AcquireTextFrame()从不抓取更新的图像,始终为空
- 如何从 avi 文件中抓取所有帧 - 如何修改 MS 样本采集卡样本
- 如何抓取指向Qt中弹出对话框的指针,该对话框阻止了QTest中的UI线程
- 为什么抓取窗口标题的代码会导致应用崩溃?
- 用Xcb而不是Xlib抓取像素的颜色
- 如何在C ++(qt)代码中使用python脚本?(网页抓取方面)
- OpenCV 3.2 在抓取时提供选择超时,但 fscyber 可以工作
- 如何在 for 循环中取下第一个结果,使其不会重复
- 使用 Matrox 进行帧抓取
- C++生产者使用者中,同一使用者线程会抓取所有任务
- 在编译时间之前抓取常数值
- OpenCV + QML(从另一个线程抓取帧)
- OpenCV视频捕获抓取和检索
- 从文本中抓取句子,将所有句子分别存储在某个数据结构中
- 视频抓取不起作用 OpenCV
- 不抓取时的QGraphicsPixmapItem mouseMoveEvent
- 嵌套循环可以在单个循环上抓取