描述

其实从历史课的时候学到那个分封制:“我的附庸的附庸不是我的附庸”的时候就已经想做这个了,谁知道拖了1个多月,我才开始做😂

其实这次要实现的很简单,总体主要要写的就是一个for循环,当然可以写while或者do-while,我这边选择for吧,毕竟比较常见的

开始编写

首先,我们肯定要引入头文件的

#include <stdio.h>

基本的main写一下

int main(void){
  return 0;
}

哦对,这里有关于一个int main()后面这个括号的一个小学问,在这里先不展开讲~

总之就推荐使用int main(void),至于为什么,之后我再写

接着我们先定义一个变量a,用于获取附庸的数量(我下文就把它说成循环次数了,具体为什么看分析),scanf获取值,用prinf输出友好的输入提示

int main(void) {
    printf("input: ");
    int a;
    scanf("%d", &a);
  return 0;
}

接着我们就开始编写主要内容了

主要内容分析

其实也没有什么了,我们先把这一句拆分开来:我的附庸的附庸不是我的附庸

一般常人理解是:我的附庸的附庸,不是我的附庸。虽然这样子理解是正确的

但是我们编写程序的时候,还需要做到一个重复吧?

举个例子:我的附庸的附庸的附庸不是我的附庸的附庸不是我的附庸

在此程序生成的,不自己写了😂

我们可以看到有一段文字是一直在重复的,他就是的附庸

所以我们需要把这句话拆分为:我 的附庸 的附庸 不是我 的附庸 的附庸

那接下来,就好写了

主要内容编写

首先我们写出最基本的句子:我 的附庸 不是我 的附庸,之后再做for循环

    printf("我");
    printf("的附庸");
    printf("不是我");
    printf("的附庸");

还记得我们之前有过一个变量a吗?a用于获取循环的次数,那么我们使用for进行循环

首先是第一个的附庸

    printf("我");
    for(int b = a; b == 0, b--;) {
        printf("的附庸");
    }

我们重新定义了一个int变量:b,因为我们要让a这个值不能发生改变,后面会继续用到a这个变量

说一下这个for吧,int b = a; b == 0, b--;,定义变量b类型为int,值为当前变量a的值;在当b==0的时候退出for循环,每次循环过后进行b--;

接着就是下面的不是我 的附庸了

由于在a > 3后,不是我也要重复,所以我们使用for嵌套,就像是这样子

    a--;
        int e = a;
    for (int d = e--; d == 0, d--;) {
        printf("不是我");
        for(int c = a--; c == 0, c--;) {
            printf("的附庸");
        }
    }

当中我们定义了一个int变量e,数值为a--之后的数,for循环我就不解释了,大家自己看吧

效果展示

input: 5
我的附庸的附庸的附庸的附庸的附庸不是我的附庸的附庸的附庸的附庸不是我的附庸的附庸的附庸不是我的附庸的附庸不是我的附庸

那我们把上述代码归纳总结,就是这样子的

//
//  main.c
//  My_Dependency
//
//  Created by wibus on 2020/11/28.
//

#include <stdio.h>
int main(void) {
    printf("input: ");
    int a;
    scanf("%d", &a);
    printf("我");
    for(int b = a; b == 0, b--;) {
        printf("的附庸");
    }
    a--;
    int e = a;
    for (int d = e--; d == 0, d--;) {
        printf("不是我");
        for(int c = a--; c == 0, c--;) {
            printf("的附庸");
        }
    }
    printf("\n");
    return 0;
}

那么我们这次文章就结束了,需要看效果的童鞋可以在网上搜搜C语言在线开发环境,我记得菜鸟教程有这么一个东西的~