用C语言编写出以下图形,带解析 谢谢了各位 * *** ***** ******** ***** *** *

2025-01-08 10:46:05
推荐回答(4个)
回答1:

不明白

回答2:

伪代码
for i=1 to n
begin
for j=1 to i-1 print(' ')
for j=1 to i*2-1 print('*')
end
for i=n-1 to 1
begin
for j=1 to i-1 print(' ')
for j=1 to i*2-1 print('*')
end
此图n=4

回答3:

老师们总是拿这样的问题来骗我们写好多循环。。一种方法就是他希望你写的:用两个循环,先画上三角再画下三角。强烈不推荐并且鄙视之。
试试这种方法:令4排4列的*为中心,到其的距离等于横坐标差+纵坐标差,则与其距离4以内都是*,与其距离大于4都是空格。
#include "stdio.h"
main(){
int i;
int j;
for(i=1;i<=8;i++){
for(j=1;j<=8;j++){
if(abs(i-4)+abs(j-4)<4)
{
printf("*");
}
else
printf(" ");
}
printf("\n") ;

}
printf("over") ;
getch();
}
试着用这种方法吧,你老师会眼前一亮的

回答4:

#include "stdio.h"
void main()
{
int i,j,k;

for(i=1;i<=4;i++)
{
for(j=1;j<=4-i;j++)
printf(" ");
for(k=1;k<=2*i-1;k++)
printf("*");
printf("\n");
}
for(i=1;i<=3;i++)
{
for(j=1;j<=i;j++)
printf(" ");
for(k=1;k<=7-2*i;k++)
printf("*");
printf("\n");
}
}
程序的原理是、;
第一个for 控制输出的行数,第二个for控制每行输出空格的个数,第三个for控制输出“ * ”号的个数。第一个for包含 第二个for和第三个for,第二个for和第三个for是并列的关系。