题目名称:字母矩阵
题目描述:用循环语句控制打印如下图形,其中输出的每个字母占用2个字符宽度(空格在前,字母在后)。
输入:无
输出:如上图字母矩阵
说明:请同学们根据字母、位置的规律实现该程序。打表爽一时,考试两行泪~
下面先给出最基础的解法,比较繁琐
#include
int main(void)
{
char x,y,i=1,j;
while(i<=6){j=1;y=1;
while(j<=9){
if(63+i+j<=73)
printf(" %c", 63+i+j);
if(63+i+j>73){
printf(" %c", 64+y);
y++;}j++;}
i++;printf("\n");}
while(i>6&&i<=11){j=1;y=1;
while(j<=9){
if(75-i+j<=73)
printf(" %c", 75-i+j);
if(75-i+j>73){
printf(" %c", 64+y);
y++;}j++;}
i++;printf("\n");}
return 0;
}
下面是用队列思想循环左移和循环右移
#include
int main(void)
{
char a[10]={'A','B','C','D','E','F','G','H','I'}; //初始化赋值
int j;
for(int i=0;i<6;i++)
{
for(j=0;j<9;j++)
{
printf(" %c",a[(j+i)%9]); //循环左移一位
}
printf("\n");
}
for(int i=0;i<5;i++) //循环打印行
{
for (j=0;j<9;j++) //打印每行的数
{
printf(" %c",a[(4+j-i)%9]); //循环右移四位
}
if(i!=4) //保证最后不换行
printf("\n");
}
return 0;
}