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 }
  • 相关阅读:
    事理学神器PDCA
    单元测试
    web框架学习路线
    编译器实现(三)
    markdown test
    设计模式
    编译器实现(二)
    编译器实现(一)
    操作系统结构
    emacs配置笔记(windows10)
  • 原文地址:https://www.cnblogs.com/xiaoluohao/p/8463857.html
Copyright © 2011-2022 走看看