我在编程考试前做练习,我不能做这个:
“编写一个程序,接收一个自然数,并使用给定的绘图模式在屏幕上近似绘制一个正方形图形。例如,如果读取数字 3,将绘制的正方形如下:
[ "
目前我有这个:
int patron(int n);
int n;
int main()
{
printf("Introduce el numero natural deseado:\n");
scanf("%d",&n);
patron(n);
}
int patron(int n)
{
int i, j;
for(i=1; i<=n; i++)
{
for (j=1; j<=n; j++)
{
printf("+---");
}
printf("+\n");
}
printf("\n");
return 0;
}
这会返回:
如何用感叹号制作正方形?添加换行符会使一切变得混乱。
提前致谢。
通过本练习,您将逐行绘制绘图。在这种情况下,奇数行将始终为 (+---),偶数行将始终为 (!)。用第一个 FOR 的计数器控制它,取决于它是奇数还是偶数,你画一个东西或另一个东西。
我会这样做,我会修改:
经过
所以它是这样的:
在本例中,它
n
等于 3。谢谢大家的意见,我已经解决了问题,这是最终代码:
添加的是这个区域(其余代码没有修改,只是在嵌套的for下添加了):
我给你留了一个选择
我向您展示了另一种方法,它可以让您选择每个单元格的内部高度和宽度。
此外,我们预先计算要显示的行,而不是进行多重
for
嵌套,因此我们只执行 3 个操作而不是迭代:预先计算结束行,预先计算内部行,最后循环显示它们。x * y
for
最后,我们检查我们是否在第一条交叉线之前的一条线上;如果我们已经通过它,我们使用除法的模数(余数)来知道我们是否必须显示单元格的内部线或交叉线。最后一点,从C89开始编译。