【发布时间】:2020-03-27 05:07:20
【问题描述】:
我需要在 C 中使用嵌套的 for 循环来实现一个函数。
该函数具有以下声明:
void nest_loop(int n);
并且应该为值 n = 5 打印以下内容
A B C D E
A B C D
A B C
A B
A
但是我需要实现该函数,以便它为以下 Intervall [0,9] 中的任何 unsigned int n 生成输出
n = 5的情况
据我了解,有 5 个 for 循环。
for_loop1 打印 5 次 char 'A'
for_loop2 打印 4 次 char 'B'
for_loop3 打印 3 次 char 'C'
for_loop4 打印 char 'D' 的 2 倍
for_loop5 打印 1 次 char 'E'
根据我的理解,嵌套循环结构应该是这样的:
int n = 5;
int c = n - 1;
for(int i = c ; i < 0; i--){ // loop for 'E'
c--;
for(int j = c; j < 0; j--){ // loop for 'D'
c--;
for(int k = c; k < 0; k--){ // loop for 'C'
c--;
for(int l = c; l < 0; l--){ // loop for 'B'
c--;
for(int p = c; p < 0; p--){ // loop for 'A'
}
}
}
}
}
我的嵌套 for 循环结构是否正确? 如果是,那么我现在如何实现 printf 以产生提到的输出?
【问题讨论】:
-
“但是我需要实现该函数,以便它为以下 Intervall [0,9] 中的任何 unsigned int n 生成输出” 如果输入的数字不是
5?那么你的 5 个嵌套循环会做什么呢? -
你只需要两个
for循环:一个打印一行中的每个字符,一个负责打印一行。 -
如果问题是打印 2D 图案,那么您的问题有 2 个维度。这意味着 2 个循环。用笔确定行和列索引(从零开始),这样可以更容易理解如何在
(row, column)或(i, j)打印字母。
标签: c for-loop printf nested-loops