void ShowHollow(int number, char symbol, int hollow); 说明:参数 number 为重复次数,symbol 为显示字符,hollow 为空心标记。若 hollow 为 0(假),函数将在屏幕上重复显示 number 个 symbol 字符。若 hollow 为 1(真),则输出的 number 个字符中,只有首字符和末字符为 symbol 字符,中间的字符均为空格(即空心)。若 number 小于等于 0,则不输出。 要求:不要使用循环语句。 提示:可增加自用的内部函数。 裁判程序 #include <stdio.h> void ShowHollow(int number, char symbol, int hollow); int main() { int n, h; char s; scanf("%d %c %d", &n, &s, &h); ShowHollow(n, s, h); putchar('\n'); return 0; }
时间: 2024-03-22 17:38:51 浏览: 157
这是一个带有一个空心标记的字符打印函数。当hollow参数为0时,函数将打印number次symbol字符,当hollow参数为1时,函数将打印一个空心的符号。在函数内部,可以使用递归函数来实现不使用循环语句的打印。下面是一个实现该函数的示例代码:
```
void PrintSymbol(char symbol)
{
putchar(symbol);
}
void PrintHollow(char symbol)
{
putchar(' ');
}
void ShowHollow(int number, char symbol, int hollow)
{
if (number <= 0) {
return;
}
if (number == 1) {
PrintSymbol(symbol);
return;
}
if (hollow) {
PrintSymbol(symbol);
for (int i = 0; i < number - 2; i++) {
PrintHollow(symbol);
}
PrintSymbol(symbol);
} else {
PrintSymbol(symbol);
ShowHollow(number - 1, symbol, hollow);
}
}
```
这个实现中,我们定义了两个内部函数`PrintSymbol`和`PrintHollow`,用于打印符号和空格。在`ShowHollow`函数中,我们首先检查`number`是否小于等于0,如果是,则直接返回,不做任何打印。如果`number`为1,则只需要打印一个符号,直接调用`PrintSymbol`函数即可。如果`hollow`为1,我们需要打印一个空心的符号,即只有首字符和末字符为符号,中间的字符都为空格。我们首先打印首字符,然后使用`PrintHollow`函数打印中间的空格,最后打印末字符。如果`hollow`为0,我们只需要在打印一个符号后递归调用`ShowHollow`函数即可。这样就可以实现不使用循环语句的打印函数了。
阅读全文