Gengsir 发布的文章

arduino买的淘宝寨版,烧的时候一个劲出错,问了问卖家,说稳定性本来就比官方差点,能烧进去就是正常...不过幸好板子没啥大问题...
买了个GA6-B这个GRPS模块(便宜啊),给的arduino例子烧进去,发现有点大。
另外附上成功发短信的代码

- 阅读剩余部分 -

这个问题来源于课本上的一个例子...它在整个操作过程中都是使用二进制实现的...无论是wb还是rb...

2023年01月07日更新...计网缓存实验中,我说怎么每写一个0x0A,前面自动给我加上一个0x0D,变成0x0A、0x0D了呢?再次说明了要用wb的重要性...

- 阅读剩余部分 -

题目背景:

编程将字符串s倒序输出,要求利用函数递归实现。
**输入格式要求:"%s" 提示信息:"input your string:\n"
**输出格式要求:"%c" 程序运行的输入输出样例: 屏幕先输出提示信息: input your string: 然后用户键盘输入: abcdefg 最后屏幕输出: gfedcba

标准答案:

#include <stdio.h>
#include <string.h>
void reverse(char s[]) //形参可以不填[]内容
{
    int len;
    len = strlen(s); //我淦,string操作还没学,我做这个题的时候造了个函数统计字数。
    if (len == 1)
    {
        printf("%c", s[0]); //基线情况,s+到最后,只剩一个字符了。
    }
    else
    {
        reverse(s + 1);
        //这个地方体现递归,不过字符串+1是什么操作?暂且朦胧着看。
        //突然好像想通了,朦朦胧胧的。
        //之前做过一个斐波那契数列的,挨边往下论。
        //但这个不一样,解答里头(也就是这个)的这个递归,把printf放在了递归下面,你不递归到头,就不printf。到头了再慢慢往回赶。也恰好体现了递归特性。
        printf("%c", s[0]);
    }
}

int main()
{
    char s[100];

    printf("input your string:\n");
    scanf("%s", s);
    reverse(s);
}

不过话说,我特么还没学string操作呢。
下面放上我的解答:

#include <stdio.h>

int GetTrueSize(char str[30]);
int PrintDaoXu(char str[30], int size);

int main(void){
    char str[30];
    int size;
    printf("input your string:\n");
    scanf("%s", &str);
    size = GetTrueSize(str);
    PrintDaoXu(str, size);
    return;
}

//肝,递归!
//不过咱们这里有个好处,就是长度默认是30。

int GetTrueSize(char str[30]){
    int i,j;
    for(i = 0; i <= 30; i++){
        if(str[i] == 0){
            return i;
            break;
        }
    }
}

int PrintDaoXu(char str[30], int size){
    for (; size >= 1; size--){
        printf("%c", str[size-1]);b
    }
    return 0;
}