编写程序,打印如图所示的图案,要求行数由键盘输入

编写程序,打印如图所示的图案,要求行数由键盘输入,第1张

#include <stdio.h>

main()

{

    int n, i, j, k

    scanf(%d", &n)

    for(i=0 i<n i++) //循环每一行

    {

        for(j=n - 1 j>0 j--)

            printf("%s", " ")  //打印行首空格

        for(j=0 j<2*n+1 j++)

            printf("%s", "*")  //打印星号

        printf("\n")

    }

}

打印杨辉三角图形的Java程序如下

public class H{

public static void main(String[] args) {

int i,j,N=7

int[][] a=new int[N][N]

for(i=0i<Ni++){

a[i][0]=1

a[i][i]=1

}

for(i=2i<Ni++)

for(j=1j<ij++)

a[i][j]=a[i-1][j-1]+a[i-1][j]

for(i=0i<Ni++){

for(j=0j<N-i-1j++){

System.out.print("  ")

}

for(j=0j<i+1j++){

System.out.printf("%-4d",a[i][j])

}

System.out.println()

}

}

}

题主给出的图案,如用matlab来做的话,可以这样来处理。

1、分析给出的图案,可以找到其图形输出规律,即

n=2k-1  %图形递减或递增

2、利用for循环语句,计算图形输出位置【x,y】值

3、使用plot函数绘制图形符号,由于matlab暂时无法显示'$'符号,用'□'来替代,即

plot(x,y,'gs')

4、实现代码

clc

for k=[1 2 3 4 5]

  n=(2*k-1)

  y=k

  for i=1:n

      x=i

      plot(x,y,'gs','LineWidth',2,'MarkerSize',10,'MarkerEdgeColor','b','MarkerFaceColor',[0.5,0.5,0.5]),hold on

  end

end

for k=[4 3 2 1]

  n=(2*k-1)

  y=10-k

  for i=1:n

      x=i

      plot(x,y,'gs','LineWidth',2,'MarkerSize',10,'MarkerEdgeColor','b','MarkerFaceColor',[0.5,0.5,0.5]),hold on

  end

end

axis off

5、运行效果如下所示。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11198096.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-14
下一篇2023-05-14

发表评论

登录后才能评论

评论列表(0条)

    保存