C语言char基础操作:sendApology函数实现问题求助
sendApology 函数实现方法
需求逻辑拆解
你只需要按照要求给函数拆成两个固定执行步骤即可:
- 入参校验:判断传入的字符是否属于
s、o、r、y四个合法字符,不属于则直接终止函数执行,不做任何输出 - 重复打印:字符校验通过后,连续打印该字符,打印次数等于传入的整数参数值
注意:你main函数里传入的'f'、'b'、'm'、'v'都不属于合法字符,调用时会被直接过滤,不会产生输出。
补全后的完整代码
#include<stdio.h> void sendApology(char, int); int main(void) { sendApology('s', 2); sendApology('f', 10); sendApology('b', 3); sendApology('o', 5); sendApology('r', 12); sendApology('m', 5); sendApology('v', 2); sendApology('y', 7); return 0; } void sendApology(char letter, int n) { // 非法字符直接返回 if (letter != 's' && letter != 'o' && letter != 'r' && letter != 'y') { return; } // 循环打印n次目标字符 for (int i = 0; i < n; i++) { putchar(letter); } }
运行说明
- 代码编译运行后,会按调用顺序输出2个
s、5个o、12个r、7个y,最终输出字符串为ssoooooorrrrrrrrrrryyyyyyy - 如果使用不支持C99标准的老旧编译器,把循环变量
i的定义挪到sendApology函数开头即可,修改方式如下:
void sendApology(char letter, int n) { int i; if (letter != 's' && letter != 'o' && letter != 'r' && letter != 'y') { return; } for (i = 0; i < n; i++) { putchar(letter); } }
内容的提问来源于stack exchange,提问作者blewwwuuu
相关产品推荐
相关产品推荐

