for (int i = number_1; i > 0; i--)
{
int j = 2;
printf("%*s", i - 1,"");
for (j; j > 0; j--)
{
printf("#");
}
printf("\n");
j = j + 1;
}
这里我试图通过获取在前一个循环中声明的变量来运行我的辅助for循环。它迭代并打印符号"#",然后在外循环结束之前再次递增1。
我收到此错误:
表达结果未使用
这里发生了什么?我当然可以用不同的方式完成任务。但是我想知道为什么代码在这种情况下不起作用。
答案 0 :(得分:3)
这句话:
j = j + 1;
给出了' j'一个值,但是循环的下一次迭代会命中这个语句:
int j = 2;
因此不使用第一个语句的结果。
但是,由于它是初始化',这可能无关紧要。
然后这句话:
for (j; j > 0; j--)
语法错误。第一个参数用于初始化值,(在这种情况下' j')但不执行初始化。
推荐:
for (; j > 0; j--)
所以省略了第一个参数
答案 1 :(得分:1)
更改为
for (int i = number_1, j = 2; i > 0; i--, ++j)//j move to this.
{
printf("%*s", i - 1,"");
for (int k = j; k > 0; k--)
{
printf("#");
}
printf("\n");
}
答案 2 :(得分:0)
错误通常只是一个警告。您在此处有j;
表达式:
for (j; j > 0; j--)
但您不能将j
的值分配给任何内容。
将其更改为
for (; j > 0; j--)
然后{@ 1}}存在另一个问题,正如@ user3629249指出的那样
将j
的声明移到循环之外:
j