使用printf打开以下图形,要求printf一次只能打印一个字符。
*
***
*****
*******
*********
*******
*****
***
*
原代码:
#include <stdio.h>
#include <stdlib.h>
int main(int argc,const char* argv[])
{
/*
// i表示每行空格的数量
for(int i=4; i>=0; i--)
{
// 打印每行的空格
for(int j=0; j<i; j++)
printf(" ");
// (5减掉空格的数量)*2-1就是每一行*的数量
for(int j=0; j<(5-i)*2-1; j++)
printf("*");
printf("\n");
}
for(int i=1; i<=4; i++)
{
for(int j=0; j<i; j++)
printf(" ");
for(int j=0; j<(5-i)*2-1; j++)
printf("*");
printf("\n");
}
代码里每行空格的数量 4 3 2 1 0 1 2 3 4 可以改成 abs([-4,4])
简化之后的代码:
#include <stdio.h>
#include <stdlib.h>
int main(int argc,const char* argv[])
{
for(int i=-4; i<=4; i++)
{
for(int j=0; j<abs(i); j++)
printf(" ");
for(int j=0; j<(5-abs(i))*2-1; j++)
printf("*");
printf("\n");
}
return 0;
}
本文展示了一段C语言代码,用于使用printf函数一次性打印一个星形图案,该图案包括上半部分和下半部分。代码通过两个嵌套循环实现,外层循环控制行数,内层循环分别打印空格和星号。简化后的代码使用了更简洁的循环范围,通过abs函数处理正负数,使得代码更加通用。
8824

被折叠的 条评论
为什么被折叠?



