最新文章汉诺塔
什么是汉诺塔?汉诺塔问题源于印度传说,传说中一个庞大的印度寺庙里,有一个72英尺高的铜制塔,塔中有三个针,最下面一个放着64个盘子,盘子大小不同,大的在下面,小的在上面,且每个盘子都比下面的盘子小得多。僧人们按照预言的指示把铜盘的一个个不同大小的圆盘从第一个针上移至第三个针上,保持原有顺序装满第三个针。据说,完成最后一个移动后,寺庙就会毁灭,太阳就会消失。
通俗的说 就是:有三根柱子,我们需要把第一个柱子的盘子全部移动到第三个柱子,有下面三个要求:
每次只能移动一个盘子;
小盘子必须在大盘子上面;
在移动盘子时,不能把一个盘子放到比它小的盘子上。
思路先将前面n-1个盘子移动到辅助柱子上,再将第n个盘子移动到目标柱子上,最后将前面n-1个盘子移动到目标柱子上。
代码实现(递归)12345678910111213141516171819202122232425#include <stdio.h>void hanoi(int n, char a, char b, char c){ if (n == 1) { printf(&qu ...
免费申请讯飞星火大模型
免费注册
进入 https://xinghuo.xfyun.cn/
填写手机号登录
填写问卷
等待消息(会给你发送信息,我等了大概三四天吧)
使用
还是挺不错的。有兴趣的可以试一试,挺简单的。
归并排序
什么是归并排序?归并排序分为两步:
拆分:将待排序的数组递归地拆分成两个子数组,直到每个子数组只包含一个元素为止。这可以通过不断将数组拆分成左右两半来实现。
合并:将拆分后的子数组两两合并,合并的同时进行排序,得到更大的已排序子数组,直到最终将所有子数组合并成一个完整的有序数组。合并操作会将两个有序的子数组合并成一个有序的大数组。
代码实现12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970#include <stdio.h>#include <stdlib.h>void merge(int arr[], int start, int mid, int end){ int* temp = (int*)malloc((end - start + 1) * sizeof(int)); // 开辟动态内存,来存储临时数组 if (te ...
统计单词个数
思路遍历整个字符串,当遇到空格时将word变量置为0,表示当前不处于一个单词中;当遇到非空格字符且word变量为0时,将word变量置为1,并将count变量加1,表示开始了一个新的单词。
代码实现1234567891011121314151617181920212223#include <stdio.h>int main() { char str[100]; gets(str); //不可以使用scanf,scanf遇到空格就结束,gets遇到回车结束 int i = 0; int word = 0; // 标记是否处于一个单词中,0表示不是,1表示是 int count = 0; // 记录单词数目 for (i = 0; str[i] != '\0'; i++) { if (str[i] == ' ') // 如果遇到空格,将word置为0,表示当前不处于一个单词中 { word = 0; ...
C语言-通讯录
contach.h123456789101112131415161718192021222324252627282930313233343536373839404142#pragma once#include <stdio.h>#include <string.h>#include <stdlib.h>#define MAX_NAME 20#define MAX_SEX 10#define MAX_TELE 12#define MAX_ADDR 30#define MAX 100#define DEFAULT_SZ 3#define INC_SZ 2typedef struct PeoInfo { char name[MAX_NAME]; char sex[MAX_SEX]; int age; char tele[MAX_TELE]; char addr[MAX_ADDR];} PeoInfo;// 1.0 版本// typedef struct Contact {// PeoInf ...
C语言-杨辉三角
什么是杨辉三角?如下是一个6行的杨辉三角,每个数字等于上方两数字之和。
123456 1 1 1 1 2 1 1 3 3 1 1 4 6 4 11 5 10 10 5 1
注意:以下方法只是实现了杨辉右三角,如以下:
1234511 11 2 11 3 3 11 4 6 4 1
方法一使用二维数组存储整个杨辉三角
1234567891011121314151617181920212223242526272829303132333435#include <stdio.h>#define N 10 // 定义杨辉三角的行数int main(){ int arr[N][N] = { 0 }; int i, j; for (i = 0; i < N; i++) { for (j = 0; j <= i; j++) { if (i == j || j == 0) // 如果是第一列或者对角线上的元素,则 ...
泰勒公式求sin(x)
什么是泰勒公式?这不重要,以下是泰勒公式求sin(x)的公式。
方法一依次计算每个项的值,并将它们累加起来。
1234567891011121314151617181920212223242526272829303132double jc(int num);int main(){ double x; printf("sin(x):"); scanf("%lf", &x); int n = 1; // 当前项数,初始为1 double term = x; // 当前项的值,初始为x double sum = x; // 求和变量,初始为x int t = -1; while (fabs(term) >= 1e-5) { n++; term = pow(x, 2 * n - 1) / jc(2 * n - 1) * t; // 计算当前项的值 sum = sum + term; t = -t; // 取相反的正负号,使下一项的符号与上一项相反 } printf("%lf&qu ...
数词
基数词基数词的表示1. 几十几
先说“几十”,再说“几”,中间加上连字号
eg:39 thirty-nine83 eight-three
2. 101-999
先说“几百”,再加and,再加末尾两位数或末位数
eg:375 three hundred and seventy-five902 nine hundred and two
3. 1000以上eg:4007 four thousand and seven8021 eight thousand and twenty-one
基数词其他考点1. 基数词的复数形式eg:hundreds ofthousands of
注意:two thousand 这里用单数
2. 年岁(in one’s 结构)eg:in one’s forties 在某人四十多岁时
3. 年代eg:in 1950’s 20世纪50年代
序数词序数词的表示1. 序数词一般都是在基数词后面加th,除了“第一”,“第二“,”第三“之外。eg:first —-> 1stsecond —-> 2ndthird —-> 3rd
fift ...
C语言-扫雷
test.c文件123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354#define _CRT_SECURE_NO_WARNINGS 1#include "game.h"void menu(){ printf("***************************\n"); printf("**** 1.play ****\n"); printf("**** 0.exit ****\n"); printf("***************************\n");}void game(){ char mine[ROWS][COLS] = { 0 }; // 放雷 char show[ROWS][COLS] = { 0 } ...
C语言-三子棋
text.c文件123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778#define _CRT_SECURE_NO_WARNINGS 1#include "game.h"void menu(){ printf("*****************************\n"); printf("***** 1.play 0.exit *****\n"); printf("*****************************\n");}void game(){ char ret = 0; char board[ROW][COL] = { 0 }; InitBoard(board, ROW, COL); Dis ...