我需要一些代码方面的帮助。问题是:
编写函数void printSquare(char c, int size)
接受字母表中的一个字母和一个介于3和10之间的数字
生成以下矩形字母:
如果传递的字母a
且大小为4:
abcd
bcde
cdef
defg
如果字母
W
且大小为6,则输出应为WXYZAB
XYZABC
YZABCD
ZABCDE
ABCDEF
BCDEFG
我已经试着调试了很长一段时间,找不到任何地方需要帮助。这就是代码现在的样子:
void printSquare(char c, int size);
int main() {
printSquare('b', 4);
system("pause");
return 0;
}
void printSquare(char c, int size){
int counter = 0;
char letters[26] = { 'a', 'b', 'c', 'd',
'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n',
'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' };
for (int i = 0; i < 26; i++){
if (c == letters[i]){
int temp = i;
for (int j = 0; j < size; j++){
letters[i] = letters[temp];
temp++;
for (int k = 0; k < size; k++){
printf("%c", letters[i]);
letters[i++];
}
printf("\n");
}
}
}
}
最佳答案
假设编码中大写字母和小写字母是连续的(例如ASCII),您可以考虑如下内容:
void printSquare(char c, int size)
{
char a = ('A' <= c && c <= 'Z') ? 'A' : 'a';
for (int i = 0; i < size; ++i)
{
for (int j = 0; j < size; ++j)
// (c - a) is the offset of c from 'A' or 'a'
// i defines an extra offset for every line, so lines start with c, c+1, ...
// j defines an offset for a character within line
// % 26 makes sure that overall offset does not go beyond the alphabet length
printf("%c", a + (c - a + i + j) % 26);
printf("\n");
}
}
关于c - 角色游戏-C编程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31466107/