| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1106 人关注过本帖
标题:求大佬解题
取消只看楼主 加入收藏
wuwuwuwuwuwu
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2020-6-22
结帖率:0
收藏
已结贴  问题点数:20 回复次数:0 
求大佬解题
输入任一单词,用5×5的'*'号矩阵打印。
例如,输入”hello”,打印
*   * ***** *     *      ***
*   * *     *     *     *   *
***** ****  *     *     *   *
*   * *     *     *     *   *
*   * ***** ***** *****  ***

这个程序添加什么代码,可以使输入的长字母拐弯,使得下一行和前面一行不重叠


#include"stdio.h"
#include"stdlib.h"
#include"string.h"
int main()
{
 int i,j;
 int length=0;//记录字符串长度
 int pass[300];//记录输入数据的字母序号,单词最长不超过300个字母
 char input[300];//记录输入数据
 char output[5][150];//记录输出数据
 char *word[26];//记录26个字母的星号矩阵
 ///////////////////////////字母的星号矩阵定义如下////////////////////////////
 word[0]="    *      \n  *   *    \n*       *  \n* * * * *  \n*       *  ";//a
 word[1]="* * * *    \n*       *  \n* * * *    \n*       *  \n* * * *    ";//b
 word[2]="  * * * *  \n*          \n*          \n*          \n  * * * *  ";//c
 word[3]="* * * *    \n*       *  \n*       *  \n*       *  \n* * * *    ";//d
 word[4]="* * * * *  \n*          \n* * * * *  \n*          \n* * * * *  ";//e
 word[5]="* * * * *  \n*          \n* * * * *  \n*          \n*          ";//f
 word[6]="  * * * *  \n*          \n*     * *  \n*       *  \n  * * * *  ";//g
 word[7]="*       *  \n*       *  \n* * * * *  \n*       *  \n*       *  ";//h
 word[8]="    *      \n    *      \n    *      \n    *      \n    *      ";//i
 word[9]="      *    \n      *    \n      *    \n  *   *    \n  * * *    ";//j
 word[10]="*     * *  \n*   *      \n* *        \n*   *      \n*     * *  ";//k
 word[11]="*          \n*          \n*          \n*       *  \n* * * * *  ";//l
 word[12]="  *   *    \n*   *   *  \n*   *   *  \n*   *   *  \n*   *   *  ";//m
 word[13]="*       *  \n* *     *  \n*   *   *  \n*     * *  \n*       *  ";//n
 word[14]="  * * *    \n*       *  \n*       *  \n*       *  \n  * * *    ";//o
 word[15]="* * * *    \n*       *  \n*       *  \n* * * *    \n*          ";//p
 word[16]="  * * *    \n*       *  \n*   *   *  \n*     * *  \n  * * * *  ";//q
 word[17]="* * * *    \n*       *  \n*       *  \n* * * *    \n*       *  ";//r
 word[18]="* * * * *  \n*          \n* * * * *  \n        *  \n* * * * *  ";//s
 word[19]="* * * * *  \n    *      \n    *      \n    *      \n    *      ";//t
 word[20]="*       *  \n*       *  \n*       *  \n*       *  \n* * * * *  ";//u
 word[21]="*       *  \n*       *  \n*       *  \n  *   *    \n    *      ";//v
 word[22]="*   *   *  \n*   *   *  \n*   *   *  \n*   *   *  \n  *   *    ";//w
 word[23]="*       *  \n  *   *    \n    *      \n  *   *    \n*       *  ";//x
 word[24]="*       *  \n  *   *    \n    *      \n    *      \n    *      ";//y
 word[25]="* * * * *  \n      *    \n    *      \n  *        \n* * * * *  ";//z
 while(1)
 {
  printf("在此输入单词: ");
  scanf("%s",&input);
  length=strlen(input);//读取字符串长度
  for(i=0;i<length;i++)
  {
   switch(input[i])//可以同时输入大写或者小写
   {
    case 'a':
    case 'A':
    {
     pass[i]=0;
     break;
    }
    case 'b':
    case 'B':
    {
     pass[i]=1;
     break;
    }
    case 'c':
    case 'C':
    {
     pass[i]=2;
     break;
    }
    case 'd':
    case 'D':
    {
     pass[i]=3;
     break;
    }
    case 'e':
    case 'E':
    {
     pass[i]=4;
     break;
    }
    case 'f':
    case 'F':
    {
     pass[i]=5;
     break;
    }
    case 'g':
    case 'G':
    {
     pass[i]=6;
     break;
    }
    case 'h':
    case 'H':
    {
     pass[i]=7;
     break;
    }
    case 'i':
    case 'I':
    {
     pass[i]=8;
     break;
    }
    case 'j':
    case 'J':
    {
     pass[i]=9;
     break;
    }
    case 'k':
    case 'K':
    {
     pass[i]=10;
     break;
    }
    case 'l':
    case 'L':
    {
     pass[i]=11;
     break;
    }
    case 'm':
    case 'M':
    {
     pass[i]=12;
     break;
    }
    case 'n':
    case 'N':
    {
     pass[i]=13;
     break;
    }
    case 'o':
    case 'O':
    {
     pass[i]=14;
     break;
    }
    case 'p':
    case 'P':
    {
     pass[i]=15;
     break;
    }
    case 'q':
    case 'Q':
    {
     pass[i]=16;
     break;
    }
    case 'r':
    case 'R':
    {
     pass[i]=17;
     break;
    }
    case 's':
    case 'S':
    {
     pass[i]=18;
     break;
    }
    case 't':
    case 'T':
    {
     pass[i]=19;
     break;
    }
    case 'u':
    case 'U':
    {
     pass[i]=20;
     break;
    }
    case 'v':
    case 'V':
    {
     pass[i]=21;
     break;
    }
    case 'w':
    case 'W':
    {
     pass[i]=22;
     break;
    }
    case 'x':
    case 'X':
    {
     pass[i]=23;
     break;
    }
    case 'y':
    case 'Y':
    {
     pass[i]=24;
     break;
    }
    case 'z':
    case 'Z':
    {
     pass[i]=25;
     break;
    }
   }
  }
  for(i=0;i<length;i++)
  {
   for(j=0;j<11;j++)
   {
    output[0][i*11+j]=word[pass[i]][j];
    output[1][i*11+j]=word[pass[i]][12+j];
    output[2][i*11+j]=word[pass[i]][24+j];
    output[3][i*11+j]=word[pass[i]][36+j];
    output[4][i*11+j]=word[pass[i]][48+j];
   }
  }
  for(i=0;i<5;i++)
  {
   for(j=0;j<length*11;j++)
   {
    printf("%c",output[i][j]);
   }
   
   printf("\n");
  }
  printf("\n\n");
  system("pause");
  system("cls");
 }
}



搜索更多相关主题的帖子: word break 输入 case pass 
2020-06-22 23:40
快速回复:求大佬解题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018568 second(s), 11 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved