输出图形

Posted lllyclh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了输出图形相关的知识,希望对你有一定的参考价值。

1.问题描述

用循环输出形如下述的图形:
    *
   ***
  *****
 *******
*********

2.问题分析

主要用到for循环,打印输出*,两层循环,外层循环控制总行数,内层循环控制空格的数量

3.算法设计

两层循环,外层循环控制总行数,内层循环控制空格的数量,再单独用一个循环打印输出*

4.程序

#include<iostream>
using namespace std;
int main()
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)     //总共有n行 
        for(int j=1;j<=n-i;j++) //对第一行来说,每次的空格数都是n-1
                    //每增加一行,加在"*"前面的空格数-1,由外面for循环的i--控制
            cout<<" ";
        
        for(int k=1;k<=2*i-1;k++) //每行的"*"数都是2i-1 
            cout<<"*";
        
        cout<<endl;   //行末进行换行 
    
    return 0;
 

 

基础练习-3.字母图形

问题描述

利用字母可以组成一些美丽的图形,下面给出了一个例子:

ABCDEFG

BABCDEF

CBABCDE

DCBABCD

EDCBABC

这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。

输入格式
输入一行,包含两个整数n和m,分别表示你要输出的图形的行数的列数。
输出格式
输出n行,每个m个字符,为你的图形。
样例输入
5 7
样例输出
ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC
数据规模与约定
1 <= n, m <= 26。
 
某位大神的算法如下:
 
 1 #include <stdio.h> 
 2 #include <stdlib.h> 
 3 #define MAXSIZE 26   
 4 
 5 void Print(char matrix[MAXSIZE][MAXSIZE],int n,int m) 
 6 {  
 7     int i,j;  
 8     for(i=0;i<n;i++) 
 9     {  
10         for(j=0;j<m;j++) 
11         {  
12             printf("%c",matrix[i][j]); 
13         }  
14             printf("\n"); 
15     } 
16 } 
17    
18   
19  void Drawing(int n,int m) 
20  {  
21      int i,j; 
22      int point=0; 
23      char str;  
24      char matrix[MAXSIZE][MAXSIZE]; 
25      for(i=0;i<n;i++) 
26         {  
27            str=A;  
28            for(j=i;j<m;j++) 
29            {  
30                matrix[i][j]=str++; 
31            }  
32             str=A;  
33                 for(j=i-1;j>=0;j--) 
34                 {  
35                     matrix[i][j]=++str; 
36                 } 
37             }  
38          Print(matrix,n,m); 
39      }  
40 int main() 
41 {  
42     int n,m;  
43     scanf("%d%d",&n,&m); 
44     Drawing(n,m); 
45     return 0; 
46 }

 

也许是在下水平过低,看大神的代码头疼,自己写了一个比较好理解的
  如下:
 
 1 #include"stdio.h"
 2 int main()
 3 {
 4     int i,j,n,m,k;
 5     char a[100][100];
 6     scanf("%d %d",&n,&m);
 7     for(i=0;i<n;i++)
 8     {
 9         k=i+1;
10         for(j=0;j<m;j++)
11         {
12             if(i==j)
13                 a[i][j]=A;
14             else if(i<j)
15                 a[i][j]=A+k++;
16             else if(i>j)
17                 a[i][j]=A+ --k;
18         }
19     }
20 for(i=0;i<n;i++)
21 {
22     for(j=0;j<m;j++)
23     {
24         printf("%c",a[i][j]);
25     }
26     printf("\n");
27 }
28     return 0;
29 }

 

以上是关于输出图形的主要内容,如果未能解决你的问题,请参考以下文章

c语言 输出以下图形

求C++输出图形,用二维数组和循环

怎样用Java代码打印并输出如下图形

java使用for循环输出图形 * *** ***** ******* ***** *** *

编写一个c程序,运行时输出以下图形 ***** ***** *****

c语言:编程输出以下图形