目录

  1. 打印图案
    1. 等腰三角形之字母扩展
    2. 空心菱形 方法一:两个等腰三角形拼接
    3. 空心菱形 方法二:对角线相等
    4. 杨辉三角
    5. 螺旋矩阵
    6. 蛇形矩阵 1
    7. 蛇形矩阵 2
  2. 趣味习题
    1. 打印某年某月日历排版
    2. 找出最长的单词
    3. 颠倒一串英文句子
    4. 颠倒一串英文句子 Java版本
    5. 生成不重复的随机数
    6. 统计班级成绩排名 Java 版本
    7. 统计班级成绩排名 C 版本
    8. 报数 123,报数 3 的童鞋退出,最后留下的是哪个同学。 Java 版本
    9. 报数 123,报数 3 的童鞋退出,最后留下的是哪个同学。 C 语言版本
    10. 模拟对象层级树结构
  3. 基础排序
    1. 插入排序
    2. 选择排序
    3. 冒泡排序
    4. 快速排序
    5. 二分法查找
  4. Json 格式的校验
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <string.h>

void countWords(){

char str[100] = "hello, my name is gaogaoProgramer, welcome to come here!";
int index;
long len = strlen(str);
int spaceIndex = 0; //从第一个下标开始算
int recordMax = 0; //单词空格之间下标最大差即为最长单词
int beforeIndex = 0,afterIndex = 0; //定义最长单词的前空格,后空格
for(index = 0; index < len; index++){
if(str[index] == 32){ //判断空格
if(index - spaceIndex > recordMax){
recordMax = index - spaceIndex;

//记录前下标和后下标。
beforeIndex = spaceIndex;
afterIndex = index;
}
spaceIndex = index;
}
}

printf("原始单词为:%s",str);
printf("\n单词空格之间下标最大差:%d 前下标:%d,后下标:%d",recordMax,beforeIndex,afterIndex);

//输出找到的单词;
printf("\n\n找到的最长度单词为:");
int charIndex;
for(charIndex = beforeIndex; charIndex< afterIndex ; charIndex++){
printf("%c",str[charIndex]);
}
}