怎么了C语言

时间:2019-03-03 20:15:31

标签: c

试图像这样制作一个正方形,但是有一些错误,但我不明白。

square

#include <unistd.h>

int ft_putchar(char c)
{
    write(1, &c, 1);
    return (0);
}

void    rush(x > 0 && y > 0)
{
    int w;
    int h;
    {
        if (w == 1 || w == x) && (h == 1 || h == y)
        {
            ft_putchar('o');
        }

        else if (w == 1 || w == x) && (h != 1 || h != y)
        {
            ft_putchar('|');
        }
        else if (w != 1 || w != x) && (h == 1 || h == y)
        {
            ft_putchar('-');
        }
        else if (w !=1 || w != x) && (h != 1 || h != y)
        {
            ft_putchar(' ');
        }
        h++;
        w++;
        ft_putchar('\n');
    }
}

int main(void)
{
    rush (5, 5);
    return (0);
}

1 个答案:

答案 0 :(得分:4)

void    rush(x > 0 && y > 0)

那不是函数的有效C声明。 (是否应该将x > 0y > 0作为函数调用的先决条件?)正确的函数调用会显示参数的类型,如:

void    rush(int x, int y)

rush函数和main例程都没有任何循环。为了遍历图像的行和列并准备要输出的字符以生成图像,必须进行某种循环。

if (w == 1 || w == x) && (h == 1 || h == y)

if语句必须在括号中包含一个表达式。您可以将两个表达式与&&组合在一起,但是整个结果表达式必须用括号括起来:

if ((w == 1 || w == x) && (h == 1 || h == y))

修复函数声明,修复if语句,并编写两个for循环以迭代hw,然后您将在目标。