zoukankan      html  css  js  c++  java
  • 基础练习-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("
    "); 
    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("
    ");
    27 }
    28     return 0;
    29 }
  • 相关阅读:
    拷贝构造函数的用法
    虚基类的用法
    函数模板的用法,以及类外定义的注意事项
    怎么学好python?
    树状数组单点更新和区间查询
    线段树的基本操作
    快排算法的实现
    react-redux 中 connect 的常用写法
    ant-design表单处理和常用方法及自定义验证
    ionic 签名、打包
  • 原文地址:https://www.cnblogs.com/xiaoluohao/p/8463857.html
Copyright © 2011-2022 走看看