试图像这样制作一个正方形,但是有一些错误,但我不明白。
#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);
}
答案 0 :(得分:4)
void rush(x > 0 && y > 0)
那不是函数的有效C声明。 (是否应该将x > 0
和y > 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
循环以迭代h
和w
,然后您将在目标。