我的代码有什么问题?我应该采用我在网上找到的方法吗?

  • 本文关键字:方法 我应该 代码 问题 c
  • 更新时间 :
  • 英文 :


目的:要求用户输入高度,并打印金字塔

我写的代码:

for(i = 1; i <= height; i++)
{
for (j = height-1; j >= 1; j--)
{
printf ("#");
}
printf ("n");
{

我在网上找到的代码:

for(i = height; i >= 1; i++)
{
for (j = 1; j <=i; j++)
{
printf ("#");
}
printf ("n");
{

应该是这样的:

###
##
#

有点像这样?

#include <stdio.h>
#include <string.h>
int main(void) {
int height = 7;

char blocks[2*height];
((char*)memset(blocks, '#', 2*height-1))[2*height-1] = '';

for(int i=0; i<height; ++i)
{
printf("%*.*sn", height+i, 2*i+1, blocks);
}

return 0;
}

结果:

Success #stdin #stdout 0s 5472KB
#
###
#####
#######
#########
###########
#############

根据您提供的示例输出:

#include <stdio.h>
#include <string.h>
int main(void) {
int height = 7;

char blocks[height+1];
((char*)memset(blocks, '#', height))[height] = '';

for(int i=0; i<height; ++i)
{
printf("%.*sn", height-i, blocks);
}

return 0;
}

结果:

Success #stdin #stdout 0s 5520KB
#######
######
#####
####
###
##
#

相关内容

最新更新