题目:在屏幕上输出形如以下图形,第一行的起如字母和终止字母由用户输入。
A B C D E
B C D E A
C D E A B
D E A B C
E A B C D
/*第一种实现方法--使用数组*/
void main(void)
{
char ch[5];
int i, j;
char ch1;
/*读入第一个字母*/
do
{
printf("\n请输入一个大写英文字母:");
scanf("%c", &ch1);
}
while ((ch1 < 'A') || (ch1 > 'Z'));
ch[0] = ch1;/*设置第一个元素值*/
/*为后续元素赋值*/
for (i = 1; i < 5; i++)
{
ch1++;
if (ch1 > 'Z')
{
ch1 = 'A';
}
ch[i] = ch1;
}
/*输出*/
for (i = 0; i < 5; i++)
{
ch1 = ch[0]; /*把第1个元素值保存到ch1中*/
printf("%c", ch1); /*输出第1个元素值*/
for (j = 1; j < 5; j++)
{
printf("%c", ch[j]); /*输出第2--5个元素值*/
ch[j-1] = ch[j]; /*数组元素值前移*/
}
printf("\n");/*换行*/
ch[4] = ch1;/*原数组第一个元素值放入最后一个元素*/
}
}
/*第二种实现方法*/
#include "stdio.h"
void main(void)
{
char ch0, ch1;
int i, j;
/*读入第一个字母*/
do
{
printf("\nPlease enter a capcase letter:");
scanf("%c", &ch0);
}
while ((ch0 < 'A') || (ch0 > 'Z'));
for (i = 0; i < 5; i++)
{
ch1 = ch0 + i;
for (j = i; j < 5; j++)
{
if (ch1 > 'Z')
{
ch1 -= ('Z' - 'A' + 1);
}
printf("%c", ch1);
ch1++;
}
ch1 = ch0;
for (j = 0; j < i; j++)
{
if (ch1 > 'Z')
{
ch1 -= ('Z' - 'A' + 1);
}
printf("%c", ch1);
ch1++;
}
printf("\n");
} /* for(i)*/
}