以下是代码:
#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;
}
答案 0 :(得分:2)
是的,这是可能的,但您应该查看不同的运营商所做的事情(并考虑您的代码应该做什么)。
for (int i = 10; i <= 100; i++) {
if (i % 10 <= i / 10) {
printf("*");
}
if (i % 10 == 0) {
printf("\n");
}
}
答案 1 :(得分:1)
不明智。您希望为j
的每个值循环遍历i
的每个值,这意味着嵌套循环。您的第二个示例将在每次迭代后递增i
和j
,这是非常不同的。
原则上,您可以将单个变量从0循环到(至少)45,然后进行一些算术以从中找到i
和j
的值;但这会更难以遵循,而且可能效率较低,所以我不会建议这样做。
答案 2 :(得分:0)
虽然您的条件部分不正确,但您可以使用逗号运算符进行此类操作。
应该是
for (i = 0, j = 0; i < 10 && /* perhaps || here*/ j < i; i++, j++){
答案 3 :(得分: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;
}
答案 4 :(得分:0)
尝试一下,它会正常工作,无需任何额外的迭代。
int count=1,tmp=1;
for (int i = 1; i <= 10; i++)
{
printf("*");
if (count == i) {
printf("\n");
tmp++;
count+=tmp;
}
}
答案 5 :(得分:0)
#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;
}