You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 06:27:24