//求1/1-1/2+1/3....+1/99-1/100的和

// 第一种写法

#include<stdio.h>
int main() {int frequency = 0;double sum = 0.0;for (frequency = 1; frequency <= 100; frequency++) {if (frequency % 2 == 0) {sum -= 1.0 / frequency;}else{sum += 1.0 / frequency;}}printf("总和为=%lf\n", sum);return 0;
}

//第二种写法

#include<stdio.h>
int main() {int frequency = 0;double sum = 0.0;int flag = 1;for (frequency = 1; frequency <= 100; frequency++) {sum += flag*1.0 / frequency;flag = -flag;}printf("%lf", sum);return 0;
}

//求十个整数最大值

#include<stdio.h>
int main() {int group[10] = { -1,5, 3, 2, 1, 4, 6, 8, 9, -3 };int max = group[0];int frequency = 0;for (frequency = 1; frequency < 10; frequency++) {if (group[frequency] > max) {max = group[frequency];}}printf("最大值=%d\n", max);return 0;
}

//乘法口诀表

#include<stdio.h>
int main()
{int number_1 = 1;int number_2 = 1;for (number_1 = 1; number_1 <= 9; number_1++) {for (number_2 = 1; number_2 <= 9; number_2++) {printf("%d*%d=%-2d ", number_1, number_2, number_1 * number_2);//  %2d表示输入2位整型数,不够两位右对齐; -2d左对齐//  %5.2f则表示宽度为5的浮点数,整数位3为,小数位2位,不够5则右对齐    %5s则表示位5个字符的字符串}printf("\n");}return 0;
}

//字符串逆序(非递归实现)

#include<stdio.h>#include<string.h>
void Swap(char* group) {int left = 0;int right = strlen(group) - 1;
/*strlen模拟实现
int my_strlen(char*group){int count = 0;while(*group != '/0'){count++;group++;}return count;
}   */while (left < right) {char swap = group[left];//   *(group + left)group[left] = group[right];//  *(gorup + left) = *(group + right);group[right] = swap;left++;right--;}
}
int main() {char group[] = "helloworld";Swap(group);printf("%s\n", group);return 0;
}

//递归实现

#include<stdio.h>
#include<string.h>
void Swap(char* group) {char first_number = *group;//第一步int right = strlen(group) - 1;*group = *(group + right);//第二步*(group + right) = '\0';//第三步if (strlen(group + 1) >= 2) {Swap(group + 1);}*(group + right) = first_number;
}
int main() {char group[] = "helloworlld";Swap(group);printf("%s\n", group);return 0;
}

/*------------ - 三子棋实现(还可以优化)-------------------------------------- -
    源.c    游戏逻辑的实现
    game.c  游戏相关函数的实现
    game.h  游戏相关的函数声明、符号声明、头文件的包含
*/

game.h

#pragma once头文件包含
//#include<stdio.h>
//#include<stdlib.h>
//#include<time.h>
//
//
符号定义
//#define ROW1 3
//#define ROW2 3
//
函数的声明
//void InitialiseChessBoard(char ChessBoard[ROW1][ROW2],int row1,int row2);
//void PrintfChessBoard(char ChessBoard[ROW1][ROW2], int row1, int row2);
//void gamer(char ChessBoard[ROW1][ROW2], int row1, int row2);
//void Compter(char ChessBoard[ROW1][ROW2], int row1, int row2);
//char IsWin(char ChessBoard[ROW1][ROW2], int row1, int row2);

源.c

#include"game.h"
void menu() {printf("##########################\n");printf("#####1. 五子棋 ############\n");printf("#####0. 退出游戏 ##########\n");printf("##########################\n");
}
void game() {char ChessBoard[ROW1][ROW2];//存储数据  二维数组InitialiseChessBoard(ChessBoard, ROW1, ROW2);//初始化棋盘PrintfChessBoard(ChessBoard, ROW1, ROW2);//打印棋盘char win = 0;//游戏的状态while (1) {//玩家下棋gamer(ChessBoard, ROW1, ROW2);PrintfChessBoard(ChessBoard, ROW1, ROW2);//判断玩家是否赢得胜利win = IsWin(ChessBoard, ROW1, ROW2);if (win != 'C') {break;}//电脑下棋Compter(ChessBoard, ROW1, ROW2);PrintfChessBoard(ChessBoard, ROW1, ROW2);//判断电脑是否赢得胜利win = IsWin(ChessBoard, ROW1, ROW2);if (win != 'C') {break;}}if (win == 'V') {printf("玩家赢了\n");}else if (win == 'X') {printf("电脑赢了\n");}else{printf("旗鼓相当,属实NB\n");}PrintfChessBoard(ChessBoard, ROW1, ROW2);
}int main()
{int input = 0;srand((unsigned int)time(NULL));do {menu();printf("请选择->\n");scanf("%d", &input);switch (input) {case 1:printf("开始游戏\n");game();break;case 0 :printf("退出游戏\n");break;default :printf("选择错误,请重新选择\n");break;}} while (input);return 0;
}

game.c

#define _CRT_SECURE_NO_WARNINGS
#include "game.h"void InitialiseChessBoard(char ChessBoard[ROW1][ROW2],int row1,int row2) {int frequency_1 = 0;int frequency_2 = 0;for (frequency_1 = 0; frequency_1 < row1; frequency_1++) {for (frequency_2 = 0; frequency_2 < row2; frequency_2++) {ChessBoard[frequency_1][frequency_2] =' ';}}
}void PrintfChessBoard(char ChessBoard[ROW1][ROW2], int row1, int row2) {int frequency_1 = 0;for (frequency_1 = 0; frequency_1 < row1; frequency_1++) {int frequency_2 = 0;for (frequency_2 = 0; frequency_2 < row2; frequency_2++) {printf(" %c ", ChessBoard[frequency_1][frequency_2]);if (frequency_2 < row2 - 1) {printf("|");}}printf("\n");if (frequency_1 < row1 - 1) {int frequency_3 = 0;for (frequency_3 = 0; frequency_3 < row2; frequency_3++) {printf("---");if (frequency_3 < row2 - 1) {printf("|");}}printf("\n");}}
}void gamer(char ChessBoard[ROW1][ROW2], int row1, int row2) {int number1 = 0;int number2 = 0;printf("玩家请行动->\n");while (1) {scanf("%d %d", &number1, &number2);if (number1 >= 1 && number1 <= row1 && number2 >= 1 && number2 <= row2) {if (ChessBoard[number1 - 1][number2 - 1] == ' ') {ChessBoard[number1 - 1][number2 - 1] = 'V';break;}else {printf("坐标被占用,请重新输入\n");}}else {printf("坐标非法,请重新输入\n");}}
}void Compter(char ChessBoard[ROW1][ROW2], int row1, int row2) {printf("电脑行动->\n");while (1){int number1 = rand() % row1;int number2 = rand() % row2;if (ChessBoard[number1][number2] == ' ') {ChessBoard[number1][number2] = 'X';break;}}
}int IsFull(char ChessBoard[ROW1][ROW2], int row1, int row2) {int frequency = 0;int frequency1 = 0;for (frequency = 0; frequency < row1; frequency++) {for (frequency1 = 0; frequency1 < row2; frequency1++) {if (ChessBoard[frequency][frequency1] == ' ') {return 0;}}}return 1;
}char IsWin(char ChessBoard[ROW1][ROW2], int row1, int row2) {int frequency = 0;for (frequency = 0; frequency < row1; frequency++) {//判断3行if (ChessBoard[frequency][0] == ChessBoard[frequency][1] && ChessBoard[frequency][0] == ChessBoard[frequency][2] && ChessBoard[frequency][0] != ' ') {return ChessBoard[frequency][0];}}for (frequency = 0; frequency < row1; frequency++) {//判断3列if (ChessBoard[0][frequency] == ChessBoard[1][frequency] && ChessBoard[1][frequency] == ChessBoard[2][frequency] && ChessBoard[1][frequency] != ' ') {return ChessBoard[0][frequency];}}//判断对角线if (ChessBoard[0][0] == ChessBoard[1][1] && ChessBoard[0][0] == ChessBoard[2][2] && ChessBoard[1][1] != ' ') {return ChessBoard[0][0];}if (ChessBoard[0][2] == ChessBoard[1][1] && ChessBoard[0][2] == ChessBoard[2][0] && ChessBoard[1][1] != ' ') {return ChessBoard[0][2];}//判断平局int same = IsFull(ChessBoard, row1, row2);if (same == 1) {return '=';}else {//继续return 'C';}
}

//----------扫雷(还可以优化)------------------------
/*
   源.c游戏逻辑的实现和测试
   game.c游戏函数的实现
   game.h游戏函数的声明和包含
*/

game.h

----------扫雷-----------------------------------
#include<stdio.h>
#include<stdlib.h>
#include<time.h>#define ROW1 9
#define ROW2 9  #define ROWS1 ROW1+2
#define ROWS2 ROW2+2
#define YourMinefield 10void InitialiseChessBoard(char group[ROWS1][ROWS2], int rows1, int rows2, char set);void PrintfChessBoard(char group[ROWS1][ROWS2], int row1, int row2);void Set(char Minefield[ROWS1][ROWS2], int row1, int row2);void FindWin(char Minefield[ROWS1][ROWS2], char Show[ROWS1][ROWS2], int row1, int row2);

源.c

#include "game.h"
void menu() {printf("##########################\n");printf("#####1. 扫雷游戏 ##########\n");printf("#####0. 退出游戏 ##########\n");printf("##########################\n");
}
void game() {char Minefield[ROWS1][ROWS2] = {0};///雷的信息char Show[ROWS1][ROWS2] = {0};//排查雷的信息InitialiseChessBoard(Minefield, ROWS1, ROWS2,'0');//初始化棋盘InitialiseChessBoard(Show, ROWS1, ROWS2, '*');//PrintfChessBoard(Minefield, ROW1, ROW2);//打印棋盘PrintfChessBoard(Show, ROW1, ROW2);Set(Minefield, ROW1, ROW2);//布置雷PrintfChessBoard(Minefield, ROW1, ROW2);FindWin(Minefield, Show, ROW1, ROW2);//排查雷
}int main()
{int input = 0;srand((unsigned int)time(NULL));do {menu();printf("请选择->\n");scanf("%d", &input);switch (input) {case 1:printf("开始游戏\n");game();break;case 0 :printf("退出游戏\n");break;default :printf("选择错误,请重新选择\n");break;}} while (input);return 0;
}

game.c

-------------------------扫雷-----------------------------------
#include "game.h"void InitialiseChessBoard(char group[ROWS1][ROWS2], int rows1, int rows2, char set) {int frequency1 = 0;int frequency2 = 0;for (frequency1 = 0; frequency1 < ROWS1; frequency1++) {for (frequency2 = 0; frequency2 < ROWS2; frequency2++) {group[frequency1][frequency2] = set;}}
}void PrintfChessBoard(char group[ROWS1][ROWS2], int row1, int row2) {int frequency1 = 1;int frequency2 = 1;printf("-----------扫雷游戏-------------\n");for (frequency1 = 0; frequency1 <= ROW2; frequency1++) {//打印横向序号printf("%d ", frequency1);}printf("\n");//换行for (frequency1 = 1; frequency1 <= ROW1; frequency1++) {printf("%d ", frequency1);//打印纵向序号for (frequency2 = 1; frequency2 <= ROW2; frequency2++) {printf("%c ", group[frequency1][frequency2]);}printf("\n");}printf("-----------扫雷游戏-------------\n");
}void Set(char Minefield[ROWS1][ROWS2], int row1, int row2) {int count = YourMinefield;while (count) {int number1 = rand() % row1 + 1;int number2 = rand() % row2 + 1;if (Minefield[number1][number2] == '0') {Minefield[number1][number2] = '1';count--;}}
}static int MinefieldNumber(char Minefield[ROWS1][ROWS2], int number1, int number2) {//这个函数只是为了实现Find函数return Minefield[number1 - 1][number2] +Minefield[number1 - 1][number2 - 1] +Minefield[number1][number2 - 1] +Minefield[number1 + 1][number2 - 1] +Minefield[number1 + 1][number2] +Minefield[number1 + 1][number2 + 1] +Minefield[number1][number2 + 1] +Minefield[number1 - 1][number2 + 1] - 8 * '0';/* 循环方式去写     for(number3 = -1;number3<=1;number3++){for(number4 = -1;number4<=1;number4++){打印Minefield[number1+number3][number2+number4];}}*/
}void FindWin(char Minefield[ROWS1][ROWS2], char Show[ROWS1][ROWS2], int row1, int row2) {int number1 = 0;int number2 = 0;int win = 0;while (win < row1 * row2 - YourMinefield) {printf("请输入排查雷的坐标>");scanf("%d%d", &number1, &number2);if (number1 >= 1 && number1 <= row1 && number2 >= 1 && number2 <= row2) {//判断坐标合法性if (Minefield[number1][number2] == '1') {printf("抱歉,您已中雷身亡\n");PrintfChessBoard(Minefield, ROW1, ROW2);break;}else {int count = MinefieldNumber(Minefield, number1, number2);Show[number1][number2] = count + '0';PrintfChessBoard(Minefield, ROW1, ROW2);//显示排查的信息win++;}}else {printf("坐标不合法,请重新输入\n");}}if (win == row1 * row2 - YourMinefield) {printf("恭喜你,扫除障碍,排雷成功\n");PrintfChessBoard(Minefield, ROW1, ROW2);}
}

//汉诺塔问题

#include<stdio.h>
void hanoi(int salver, char A, char B, char C) {if (salver == 1) {printf("%d个盘子:%c--->%c\n", salver, A, C);}else {hanoi(salver - 1, A, C,B);//步骤一:将salver-1放到Bprintf("%d个盘子:%c--->%c\n", salver,A,C);//步骤二:hanoi(salver - 1, B,A,C);//步骤三:将位于B的alver-1移动到C}
}
int main() {int salver = 0;printf("请输入盘子个数:");scanf("%d", &salver);hanoi(salver,'A','B','C');return 0;}

青蛙跳台阶问题
//一个青蛙一次可以跳1个台阶,也可以一次跳2个台阶,求一个青蛙上一个n级台阶有多少种算法?(一一列出找规律)

#include<stdio.h>
int frog(int number) {if (number < 3) {return number;}else {return frog(number - 1) + frog(number - 2);}
}
int main() {int number = 0;scanf("%d", &number);int ways = frog(number);printf("总共方法有%d\n", ways);return 0;
}

想0.5倍播放最近的日子,有时候世界很烦,但你很可爱~mua

[C语言] 0.5倍速讲解世纪大战 有趣的C语言玩法相关推荐

  1. 盒格速 M 2022风口项目电商新玩法

    盒格速M 2022风口项目电商新玩法.60元即可参与,抢单➕自动卖出➕收钱,抢单➕一买一卖即可获利,火爆全网➕***黑马项目,开启月入过万无需推广模式.... 盒格速M全网启动,终于等来落地了,错过太 ...

  2. android百度网盘倍速,百度网盘在线倍数播放-全网最强,已做群组视频适配,不用保存文件也可倍速,无vip限制(附加安卓倍速版)...

    // ==UserScript== // @name 百度网盘在线倍数播放-全网最强,已做群组视频适配,不用保存文件也可倍速,无vip限制(附加安卓倍速版) // @namespace http:// ...

  3. 听歌也能倍速了!网易云音乐PM怎么想的?

    网易云音乐近期上线了个备受争议功能--倍速播放. 音乐播放主页,点击更多就能找到. 该功能一经上线,就引起了网友的热议. 多数人表示不理解,骂社会急躁. 少数人觉得不错,感觉解锁了新技能. 那么问题来 ...

  4. Html5播放器如何实现倍速播放

    定义和用法 playbackRate 属性设置或返回音频的当前播放速度. playbackspeed 指示音频的当前播放速度. 例值: 1.0 正常速度 0.5 半速(更慢) 2.0 倍速(更快) - ...

  5. 【工具】JS脚本|网页任意视频倍速播放(包括MOOC、本地视频、其他的视频)

      只要浏览器播放视频时用的是<video>,而且当前页面只有这一个视频,就可以用这个脚本.   刚好也是世界杯 CSDN 博客的活动了,虽然对活动没什么兴趣但是还是写一句和活动相关的话吧 ...

  6. ffmpeg常用命令汇总(倒放/左右翻转/上下翻转/倍速/压缩/去声音/加水印/画中画/缩放等)

    软件下载地址:Releases · BtbN/FFmpeg-Builds · GitHub 1.翻转  左右翻转 ffmpeg -i yourFilePath\原视频.mp4 -vf "hf ...

  7. ffplay使用ffmpeg滤镜实现倍速播放

    第一章 自定义播放器接口 第二章 倍速播放(本章) ______第一节 sonic实现倍速播放 ______第二节 soundtouch实现倍速播放 ______第三节 ffmpeg滤镜实现倍速播放( ...

  8. 音视频倍速播放之sonic

    播放器中有个重要的功能就是倍速播放,比如现在有很多在线教育,或者看电影,据说现在的年轻人几乎都是1.2,1.5倍速的播放了,我个人是1.2和1.5倍速使用较多. 比如有的课程老师的语速比较慢,就调快点 ...

  9. 腾讯课堂播放-增加多倍速设置、去除XXX正在观看水印

    腾讯课堂多倍速设置 最近一直在使用腾讯课堂学习,想必大家对倍速播放并不陌生,官方默认有 0.8-2 倍速,但是我想更快,比如 3 倍.4 倍怎么办呢?有的时候就是需要这么豪横(^^) 腾讯课堂在观看视 ...

  10. Flutter自定义视频播放器(播放、暂停、倍速、拖动视频进度)

    Flutter自定义视频播放器 在pubspec.yaml 添加video_player.dropdown_button2 添加完成后在需要视频的dart文件引入 import 'package:vi ...

最新文章

  1. Jürgen Schmidhuber发文纪念10年前的研究,网友:转折点非AlexNet?
  2. 虚拟电脑键盘app_说到弹吉他,这几个APP你一定用得上
  3. SmartNIC/DPU — TSO、GSO、LRO、GRO 卸载技术
  4. python面向对象图片_Python面向对象-概念、类、实例
  5. LOJ.2587.[APIO2018]铁人两项Duathlon(圆方树)
  6. Spark Java API:foreach、foreachPartition、lookup
  7. python课程笔记_Python课程笔记(一)
  8. java登录界面命令_Java命令行界面(第26部分):CmdOption
  9. 秒杀场景_多线程异步抢单队列分析与实现_02
  10. navicat for mysql 用户_Navicat for MySQL 怎么/怎么添加管理用户?Navicat for MySQL 添加管理用户教程_37游游网...
  11. android开发 问卷调查案例_Android开发Handler的简单使用——随机点名案例
  12. 魅族前副总裁李楠谈“苹果对5G判断”,理解万岁!
  13. mysql client 升级_解决consider upgrading MySQL client问题
  14. 说说 XcodeGhost 这个事
  15. laravel 递归 无限层级分类
  16. 宿舍物联网门锁系统之个人小程序注册
  17. 计算机网络 DNS解析命令汇总
  18. nginx80转443
  19. LATEX Mathematical Symbols
  20. 网络模型(ISO,TCP/IP)

热门文章

  1. 穿孔发光字/外露发光字制作流程步骤
  2. Allegro中的NET到NET之间的间距设置-网络之间的间距
  3. python中如何显示特殊的单位符号
  4. Gateway网关- 微服务(十五)
  5. 设计一款内容阅读app,要求与市面上的产品有差异化,列举其核心功能,画出页面设计原型图(2-3个),说明其产品价值
  6. win10显示隐藏文件_u盘内隐藏文件怎么显示 u盘内隐藏文件显示方法【详细步骤】...
  7. word被锁定无法编辑怎么处理
  8. 大学生对于外卖和食堂之间的抉择的调查报告 新生研讨课校内调查
  9. 计算机教育思维,计算机教育中计算思维的培育
  10. 案例|工业物联网解决方案•泵站智慧云平台