| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2343 人关注过本帖, 1 人收藏
标题:拿到一个题,输入任一单词,用5×5的'*'号矩阵打印,我试了几次都不对,求帮 ...
只看楼主 加入收藏
喉舌
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-7-7
结帖率:100%
收藏(1)
已结贴  问题点数:20 回复次数:13 
拿到一个题,输入任一单词,用5×5的'*'号矩阵打印,我试了几次都不对,求帮忙!

题目:
   要求: 输入任一单词,用5×5的'*'号矩阵打印。
例如,输入”hello”,打印
*   * ***** *     *      ***
*   * *     *     *     *   *
***** ****  *     *     *   *
*   * *     *     *     *   *
*   * ***** ***** *****  ***

 以下是我自己写的,一直不对,帮忙看看啊!
我是新手,谢谢啦!
#include "stdio.h"
#include"string.h"
int main()
{
 int i,j;
 int n=0;
 int pass[15];
 char input[15];
 char output[5][150];
 char word[26][5][6]={
"    *      \n  *   *    \n*       *  \n* * * * *  \n*       *  ";/*a*/
"* * * *    \n*       *  \n* * * *    \n*       *  \n* * * *    ";/*b*/
"  * * * *  \n*          \n*          \n*          \n  * * * *  ";/*c*/
"* * * *    \n*       *  \n*       *  \n*       *  \n* * * *    ";/*d*/
"* * * * *  \n*          \n* * * * *  \n*          \n* * * * *  ";/*e*/
"* * * * *  \n*          \n* * * * *  \n*          \n*          ";/*f*/
"  * * * *  \n*          \n*     * *  \n*       *  \n  * * * *  ";/*g*/
"*       *  \n*       *  \n* * * * *  \n*       *  \n*       *  ";/*h*/
"    *      \n    *      \n    *      \n    *      \n    *      ";/*i*/
"      *    \n      *    \n      *    \n  *   *    \n  * * *    ";/*j*/
"*     * *  \n*   *      \n* *        \n*   *      \n*     * *  ";/*k*/
"*          \n*          \n*          \n*       *  \n* * * * *  ";/*l*/
"  *   *    \n*   *   *  \n*   *   *  \n*   *   *  \n*   *   *  ";/*m*/
"*       *  \n* *     *  \n*   *   *  \n*     * *  \n*       *  ";/*n*/
"  * * *    \n*       *  \n*       *  \n*       *  \n  * * *    ";/*0*/
"* * * *    \n*       *  \n*       *  \n* * * *    \n*          ";/*p*/
"  * * *    \n*       *  \n*   *   *  \n*     * *  \n  * * * *  ";/*q*/
"* * **    \n*       *  \n*       *  \n* * * *    \n*       *  ";/*r*/
"* * * * *  \n*          \n* * * * *  \n        *  \n* * * * *  ";/*s*/
"* * * * *  \n    *      \n    *      \n    *      \n    *      ";/*t*/
"*       *  \n*       *  \n*       *  \n*       *  \n* * * * *  ";/*u*/
"*       *  \n*       *  \n*       *  \n  *   *    \n    *      ";/*v*/
"*   *   *  \n*   *   *  \n*   *   *  \n*   *   *  \n  *   *    ";/*w*/
"*       *  \n  *   *    \n    *      \n  *   *    \n*       *  ";/*x*/
"*       *  \n  *   *    \n    *      \n    *      \n    *      ";/*y*/
"* * * * *  \n      *    \n    *      \n  *        \n* * * * *  ";/*z*/
 };
printf("输入单词: ");
  scanf("%s",&input);
  n=strlen(input);
  for(i=0;i<n;i++)
  {swith(inpit[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<5;i++)
  {
   for(j=0;j<length*11;j++)
   {
    printf("%c",output[i][j]);
   }
   printf("\n");
  }
 
搜索更多相关主题的帖子: 矩阵 单词 打印 输入 
2010-07-07 21:02
mashrb
Rank: 2
等 级:论坛游民
帖 子:47
专家分:29
注 册:2010-6-30
收藏
得分:0 
我只能说,你的耐心太好了。
2010-07-07 21:16
不归鹄
Rank: 9Rank: 9Rank: 9
来 自:冥王星
等 级:蜘蛛侠
威 望:4
帖 子:491
专家分:1380
注 册:2009-12-20
收藏
得分:0 
三维字符数组应该像下面一样定义:
char word[26][5][7]={{
                        "    *      ",
                        "  *   *    ",
                        "*       *  ",
                        "* * * * *  ",
                        "*       *  "},
                       
                        {"* * * *    ",
                        "*       *  ",
                        "* * * *    ",
                        "*       *  ",
                        "* * * *    "},
                    
                       {"  * * * *  ",
                        "*          ",
                        "*          ",
                        "*          ",
                        "  * * * *  "},

                       {"* * * *    ",
                        "*       *  ",
                        "*       *  ",
                        "*       *  ",
                        "* * * *    "},

                       {"* * * * *  ",
                        "*          ",
                        "* * * * *  ",
                        "*          ",
                        "* * * * *  "},

                       {"* * * * *  ",
                        "*          ",
                        "* * * * *  ",
                        "*          ",
                        "*          "},
                        
                         ...};
  太多了,不写了。定义成每个字符串有7个字符是考虑到"\0"这个结束标志。当然也可以定义成 char *word[26][5],这样就不用去管他有几个字符了。
  输出时应该用void gotoxy(int,int)函数使光标跳转,当然,得先用int wherex(void),int wherey(void)函数得到当前坐标的位置。这些函数都包含在conio.h头文件中。

 

[ 本帖最后由 不归鹄 于 2010-7-7 22:04 编辑 ]

2010-07-07 21:36
ouyangouyang
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:273
专家分:579
注 册:2009-10-8
收藏
得分:0 
问一个问题,像这样的问题能不能写一个头文件,直接调用就可以了

多少恨, 昨夜梦魂中。 还似旧时游上苑, 车如流水马如龙; 花月正春风!
2010-07-07 22:35
starjun14
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:266
专家分:136
注 册:2009-4-26
收藏
得分:0 
好东西~~
2010-07-08 15:57
不归鹄
Rank: 9Rank: 9Rank: 9
来 自:冥王星
等 级:蜘蛛侠
威 望:4
帖 子:491
专家分:1380
注 册:2009-12-20
收藏
得分:20 
Ok 了,运行如下:
图片附件: 游客没有浏览图片的权限,请 登录注册
程序代码:
#include<stdio.h>
#include<string.h>
#include<conio.h>

void printstar(char *str)/*打印星星字体*/
{
    int n=0;/*存放字符串长度*/
    int i=0;/*存放操作步骤*/
    int j=0;/*存放对应的星星码(嘿嘿,就像ASCII码)*/
    int k=0;/*记录打印行数*/
    int x=1;/*横坐标*/
    int y=1;/*纵坐标*/
    char word[27][5][7]={
        {"  *   ",
         " * *  ",
         "*   * ",
         "***** ",
         "*   * "},

        {"****  ",
         "*   * ",
         "****  ",
         "*   * ",
         "****  "},

        {" **** ",
         "*     ",
         "*     ",
         "*     ",
         " **** "},

        {"****  ",
         "*   * ",
         "*   * ",
         "*   * ",
         "****  "},
       
        {"***** ",
         "*     ",
         "***** ",
         "*     ",
         "***** "},
       
        {"***** ",
         "*     ",
         "***** ",
         "*     ",
         "*     "},
       
        {" **** ",
         "*     ",
         "*  ** ",
         "*   * ",
         " **** "},
       
        {"*   * ",
         "*   * ",
         "***** ",
         "*   * ",
         "*   * "},
       
        {"  *   ",
         "  *   ",
         "  *   ",
         "  *   ",
         "  *   "},
       
        {"    * ",
         "    * ",
         "    * ",
         "*   * ",
         " ***  "},
       
        {"*  ** ",
         "* *   ",
         "**    ",
         "* *   ",
         "*  ** "},
       
        {"*     ",
         "*     ",
         "*     ",
         "*   * ",
         "***** "},
       
        {" * *  ",
         "* * * ",
         "* * * ",
         "* * * ",
         "* * * "},
       
        {"*   * ",
         "**  * ",
         "* * * ",
         "*  ** ",
         "*   * "},
       
        {" ***  ",
         "*   * ",
         "*   * ",
         "*   * ",
         " ***  "},
       
        {"****  ",
         "*   * ",
         "*   * ",
         "****  ",
         "*     "},
       
        {" ***  ",
         "*   * ",
         "* * * ",
         "*  ** ",
         " **** "},
        
         {"**** ",
          "*   *",
          "*   *",
          "**** ",
          "*   *"},
        
         {"***** ",
          "*     ",
          "***** ",
          "    * ",
          "***** "},
        
         {"***** ",
          "  *   ",
          "  *   ",
          "  *   ",
          "  *   "},
        
         {"*   * ",
          "*   * ",
          "*   * ",
          "*   * ",
          " ***  "},
        
         {"*   * ",
          "*   * ",
          "*   * ",
          " * *  ",
          "  *   "},
        
         {"* * * ",
          "* * * ",
          "* * * ",
          "* * * ",
          " * *  "},

         {"*   * ",
          " * *  ",
          "  *   ",
          " * *  ",
          "*   * "},
        
         {"*   * ",
          " * *  ",
          "  *   ",
          "  *   ",
          "  *   "},
        
         {"***** ",
          "   *  ",
          "  *   ",
          " *    ",
          "***** "},
         
         {"      ",
          "      ",
          "      ",
          "      ",
          "      "}};/*星星字模*/
   
    n=strlen(str);/*得到字符串长度*/
    x=wherex();/*当前横坐标*/
    y=wherey();/*当前纵坐标*/
    for(i=0;i<n;i++)/*依次判断打印字符串对应的星星字体*/
    {
        switch(str[i])/*判断 str[i] 是哪个字符*/
        {
            case 'a':
            case 'A':
            {
                j=0;
                break;
            }
            case 'b':
            case 'B':
            {
                j=1;
                break;
            }
            case 'c':
            case 'C':
            {
                j=2;
                break;
            }
            case 'd':
            case 'D':
            {
                j=3;
                break;
            }
            case 'e':
            case 'E':
            {
                j=4;
                break;
            }
            case 'f':
            case 'F':
            {
                j=5;
                break;
            }
            case 'g':
            case 'G':
            {
                j=6;
                break;
            }
            case 'h':
            case 'H':
            {
                j=7;
                break;
            }
            case 'i':
            case 'I':
            {
                j=8;
                break;
            }
            case 'j':
            case 'J':
            {
                j=9;
                break;
            }
            case 'k':
            case 'K':
            {
                j=10;
                break;
            }
            case 'l':
            case 'L':
            {
                j=11;
                break;
            }
                case 'm':
                case 'M':
            {
                j=12;
                break;
            }
            case 'n':
            case 'N':
            {
                j=13;
                break;
            }
            case 'o':
            case 'O':
            {
                j=14;
                break;
            }
            case 'p':
            case 'P':
            {
                j=15;
                break;
            }
            case 'q':
            case 'Q':
            {
                j=16;
                break;
            }
            case 'r':
            case 'R':
            {
                j=17;
                break;
            }
            case 's':
            case 'S':
            {
                j=18;
                break;
            }
            case 't':
            case 'T':
            {
                j=19;
                break;
            }
            case 'u':
            case 'U':
            {
                j=20;
                break;
            }
            case 'v':
            case 'V':
            {
                j=21;
                break;
            }
            case 'w':
            case 'W':
            {
                j=22;
                break;
            }
            case 'x':
            case 'X':
            {
                j=23;
                break;
            }
            case 'y':
            case 'Y':
            {
                j=24;
                break;
            }
            case 'z':
            case 'Z':
            {
                j=25;
                break;
            }
            default :
            {
                j=26;
                break;
            }
        }
        for(k=0;k<5;k++)
        {
            printf("%s",word[j][k]);/*这里是以行来打印的哦*/
            gotoxy(x+i*6,y+k+1);/*坐标跳转,用“\n”会跳到不行哦*/
        }
        gotoxy(x+i*6+6,y);/*继续让坐标跳转,不过这次得让横坐标也跳转*/
    }
    gotoxy(wherex(),wherey()+5);/*这是为了让屏幕好看而已*/
}

void main()
{
    char str[12];
    printf("Input:");
    gets(str);
    printf("\n");
    printstar(str);
    system("pause");
}
很长,没办法。附件
PrintStar.rar (9.33 KB)



2010-07-08 16:47
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1697
专家分:4305
注 册:2007-12-27
收藏
得分:0 
这一堆case建议写作
j=(str[i]>='A'&&str[i]<='Z') ? (str[i]-'A') : ((str[i]>='a'&&str[i]<='z') ? str[i]-'a' : 26);

加括号是为了看着方便。

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2010-07-08 17:22
不归鹄
Rank: 9Rank: 9Rank: 9
来 自:冥王星
等 级:蜘蛛侠
威 望:4
帖 子:491
专家分:1380
注 册:2009-12-20
收藏
得分:0 
对啊,太好了

2010-07-08 18:50
freegod
Rank: 2
等 级:论坛游民
帖 子:33
专家分:73
注 册:2010-4-12
收藏
得分:0 
回复 7楼 forever74
不错不错
2010-07-09 18:52
蚊丨子
Rank: 2
等 级:论坛游民
帖 子:11
专家分:24
注 册:2010-7-9
收藏
得分:0 
看的我相当的蛋疼...- -
2010-07-09 18:56
快速回复:拿到一个题,输入任一单词,用5×5的'*'号矩阵打印,我试了几次都不对 ...
数据加载中...
 
   



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

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