C语言!! 用*号输出单词!!
答案:2 信息版本:手机版
解决时间 2019-10-03 21:07
已解决
2019-10-02 20:20
要求:输入任一单词,用5×5的*号矩阵打印。
例如:输入“hello”,打印
* * ***** * * ***
* * * * * * *
***** **** * * * *
* * * * * * *
* * ***** ***** ***** ***
求解答,急用
最佳答案
2019-10-02 20:37
我全贴出来吧 记得好评啊 呵呵
#include"stdio.h"
#include"stdlib.h"
#include"string.h"
int main()//这里你可能不太明白,在标准C里main必须返回int
{
int i,j;
int length=0;//记录字符串长度
int pass[15];//记录输入数据的字母序号,单词最长不超过15个字母
char input[15];//记录输入数据
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);//读取字符串长度
printf("\n\n");
for(i=0;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
{
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
{
printf("%c",output[i][j]);
}
printf("\n");
}
printf("\n\n");
system("pause");
system("cls");
}
}
全部回答
1楼
2019-10-02 21:12
#include
#include
char a[26][5][5]=
{
{{' ',' ','*',' ',' '},
{' ','*',' ','*',' '},
{'*','*','*','*','*'},
{'*',' ',' ',' ','*'},
{'*',' ',' ',' ','*'},
},
{{'*','*','*','*',' '},
{'*',' ',' ',' ','*'},
{'*','*','*','*',' '},
{'*',' ',' ',' ','*'},
{'*','*','*','*',' '},
},
{{' ','*','*','*',' '},
{'*',' ',' ',' ','*'},
{'*',' ',' ',' ',' '},
{'*',' ',' ',' ','*'},
{' ','*','*','*',' '},
},
//{^}……自己搞够26个形状 ,看清楚,有双层花括号的; ,不要错了
};
main()
{
char b[5][1000],c[100];
gets(c);
int i,j,k,n,m;
int l[5]={0};
n=strlen(c);
for(i=0;i
{
for(j=0;j<26;j++)
{
if(c[i]-'a'==j)
{
for(k=0;k<5;k++)
{ for(m=0;m<5;m++)
{
b[k][l[k]++]=a[j][k][m];
}
b[k][l[k]++]=' ';
}
break;
}
}
}
for(i=0;i<5;i++)
{for(j=0;j
printf("%c",b[i][j]);
printf("\n");
}
}
//by:疯子
我要举报
如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
大家都在看
推荐资讯