用c写一个for循环
writing a for loop in c
大家好!我正在尝试解决 cs50 中的马里奥问题,当我插入这样的 for 循环时:
#include <cs50.h>
#include <stdio.h>
int main(void)
{
int height;
int i = 0;
int j = 9;
do
{
height = get_int("establish the height of the pyramide: ");
}
while (height < 1 || height > 8);
printf("you select the height of: %i\n", height);
for (i < height; i++)
{
for (j > height; j++)
{
printf("#");
}
}
}
我收到这样的错误:
mario.c:17:12: error: relational comparison result unused
[-Werror,-Wunused-comparison]
for (i <= height; i++):
我已经尝试在循环内声明 i,但结果错误是一样的。我在这里做错了什么?
即使在for循环中需要跳过初始化,也需要放入;
.
for (; i < height; i++) {
for (; j > height; j++) {
printf("#");
}
}
只需将其更改为应该就可以了。
在 C 中,for 循环定义如下
for ( expressionopt ; expressionopt ; expressionopt ) statement
for ( declaration expressionopt ; expressionopt ) statement
也就是说它分为三个部分。第一部分是表达式(可能省略)或声明。
所以这些 for 循环
for (i < height; i++)
for (j > height; j++)
不满足语法要求。此外,第二个循环中的条件
j > height
没有意义。
也尝试在使用它们的最小范围内定义变量。
看来你需要的是下面这样的东西
for ( int i = 0 ; i < height; i++)
{
for ( int j = 0; j < i + 1; j++)
{
putchar( '#' );;
}
putchar( '\n' );
}
或者像下面这样
for (int i = 0; i < height; i++)
{
printf( "%*c", height - i, '#' );
for (int j = 1; j < i + 1; j++)
{
putchar( '#' );;
}
putchar( '\n' );
}
大家好!我正在尝试解决 cs50 中的马里奥问题,当我插入这样的 for 循环时:
#include <cs50.h>
#include <stdio.h>
int main(void)
{
int height;
int i = 0;
int j = 9;
do
{
height = get_int("establish the height of the pyramide: ");
}
while (height < 1 || height > 8);
printf("you select the height of: %i\n", height);
for (i < height; i++)
{
for (j > height; j++)
{
printf("#");
}
}
}
我收到这样的错误:
mario.c:17:12: error: relational comparison result unused [-Werror,-Wunused-comparison] for (i <= height; i++):
我已经尝试在循环内声明 i,但结果错误是一样的。我在这里做错了什么?
即使在for循环中需要跳过初始化,也需要放入;
.
for (; i < height; i++) {
for (; j > height; j++) {
printf("#");
}
}
只需将其更改为应该就可以了。
在 C 中,for 循环定义如下
for ( expressionopt ; expressionopt ; expressionopt ) statement
for ( declaration expressionopt ; expressionopt ) statement
也就是说它分为三个部分。第一部分是表达式(可能省略)或声明。
所以这些 for 循环
for (i < height; i++)
for (j > height; j++)
不满足语法要求。此外,第二个循环中的条件
j > height
没有意义。
也尝试在使用它们的最小范围内定义变量。
看来你需要的是下面这样的东西
for ( int i = 0 ; i < height; i++)
{
for ( int j = 0; j < i + 1; j++)
{
putchar( '#' );;
}
putchar( '\n' );
}
或者像下面这样
for (int i = 0; i < height; i++)
{
printf( "%*c", height - i, '#' );
for (int j = 1; j < i + 1; j++)
{
putchar( '#' );;
}
putchar( '\n' );
}