
c语言
小乔不掉发
爱编程 爱生活
展开
-
“sizeof“ 和 “strlen “ 求数组长度的区别
1、sizeof(str) 计算数组的总大小 单位字节#include<stdio.h>int main(){ char str[] = "hello 优快云"; printf("%d\n", sizeof(str));}输出的结果是 112、strlen是求字符串长度找到字符串的结束标志‘\0’,在’\0’之前出现多少个字符,长度就是几#include<stdio.h>int main(){ char str[] = "hello 优快云"; p原创 2020-09-20 18:15:31 · 523 阅读 · 0 评论 -
C语言小游戏 -- “扫雷”
游戏规则:以9*9棋盘为例,棋盘上随机分布着10个地雷,玩家在棋盘上进行点击,如果被点击的格子是地雷,则玩家被炸“死”,游戏结束;如果被点击的格子上没有地雷,与被点击的格子相邻的格子(被点击格子的上下左右还有斜向,共八个格子)有地雷,则在被点击的格子上显示这些地雷的总数,如果与被点击的格子相邻的八个格子都没有地雷,则棋盘自动展开,直到与展开的格子相邻的格子有地雷才停止。此时最后被展开的格子显示其相邻格子共有的地雷数。代码采用模块化思想:game.h 模块:存放 头文件和函数声明#define _原创 2020-09-20 11:36:04 · 971 阅读 · 0 评论 -
C语言小游戏 - - “三子棋”
代码采用模块化思想:game.h 模块:存放 头文件和函数声明#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include <stdlib.h>#include <time.h>//全局变量,方便修改后期棋盘的大小#define COL 3//列#define ROW 3//行#define COUNT 3void menu(void);void game(void);void I原创 2020-09-20 10:21:58 · 1038 阅读 · 0 评论 -
求两个数二进制中不同位的个数
编程实现:两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?思路:先将m和n进行按位异或,此时m和n相同的二进制比特位清零,不同的二进制比特位为1统计异或完成后结果的二进制比特位中有多少个1即可#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int diff_bit(int m, int n){ int tmp = m ^ n; int count = 0; while (tmp) { tmp原创 2020-09-14 23:25:19 · 333 阅读 · 0 评论 -
获取一个整数二进制序列中所有的偶数位和奇数位,分别打印出二进制序列
思路:提取所有的奇数位,如果该位是1,输出1,是0则输出0以同样的方式提取偶数位置检测num中某一位是0还是1的方式:将num向右移动i位将移完位之后的结果与1按位与,如果:结果是0,则第i个比特位是0结果是非0,则第i个比特位是1#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>void Printbit(int num){ for (int i = 31; i >= 1; i -= 2) { pri原创 2020-09-14 22:53:33 · 1664 阅读 · 0 评论 -
给一个字符串,逆向输出
1、非递归:#include<stdio.h>#include<string.h>void reverse_string(char arr[]){ int left = 0; int right = strlen(arr)-1; while (left < right) { char tmp = arr[left]; arr[left] = arr[right]; arr[right] = tmp; left++; right--; }}原创 2020-08-27 22:22:20 · 776 阅读 · 1 评论 -
求阶乘(不考虑溢出)
问题:输入一个数,算出它的阶乘1、非递归:#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int fac(int n){ int i = 0; int ret = 1; for (i = 1;i <= n;i++) { ret *= i; } return ret;}int main(){ int n = 0; scanf("%d", &n); int ret = fac(n); print原创 2020-08-27 22:16:18 · 193 阅读 · 0 评论 -
求斐波那契数列中的任一 一个值
斐波那契数列:1 1 2 3 5 8 13…从第三个数开始,每个数等于前两个数之和输入一个数,表示第几位的斐波那契数为多少1、递归(当输入数过大时,效率太慢)#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int Fib(int n){ if (n <= 2) return 1; else return Fib(n - 1) + Fib(n - 2);}int main(){ int n = 0;原创 2020-08-27 22:12:04 · 423 阅读 · 0 评论 -
计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值(c)
#include<stdio.h>int main(){ int i = 0; double sum = 0.0; int flag = 1; for (i = 1;i <= 100;i++) { // / 除法操作符 他的两边都是整数的时候,执行的是整数除法 // 1/2!=0.5 而是 ==0 //两边操作数,只要有一个浮点数,执行的就是浮点数的除法 sum += flag * 1.0 / i; flag = -flag;//变换正负号 }原创 2020-08-27 19:56:07 · 191 阅读 · 0 评论 -
在一个有序数组中,查找具体的某个数(二分查找)
问题:给定已排序好的n个元素arr[0:n-1],现在要在这n 个元素中找出一特定元素x基本思想:将n个元素分成个数大致相同的两半,取arr[n/2]与x进行比较。如果x=arr[n/2],则找到x,算法终止。如果x<arr[n/2],则只要在数组arr的左半部继续搜索x。如果x>arr[n/2],则只需要在数组arr的右半部继续寻找x。最坏情况下的时间复杂度: O(log n)代码如下:#define _CRT_SECURE_NO_WARNINGS 1#include<s原创 2020-08-24 10:13:41 · 1005 阅读 · 0 评论 -
乘法口诀表(自己定义)
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>void table(int x){ for (int i = 1;i <= x;i++) { for (int j = 1;j <=i;j++) { printf("%d*%d=%d ", j, i, i * j); } printf("\n"); }}int main(){ int num = 0; printf("乘法口诀表\n请输入一个数原创 2020-08-22 16:18:48 · 378 阅读 · 0 评论 -
判断闰年(函数)
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>void leap_year(int x){ if (((x % 4 == 0) && (x % 100 != 0)) || (x % 400 == 0)) { printf("%d 是闰年\n", x); } else printf("%d 不是闰年\n", x);}int main(){ int year = 0; printf("请输入年份: ")原创 2020-08-22 16:10:29 · 369 阅读 · 0 评论 -
C语言初学常识
什么是c语言:是一种计算机编程语言,广泛应用于底层开发计算机语言:人和计算机交流的语言(c/c++/java/python/go 等)c语言国际标准:ANSI Cc语言是一门高级的计算机语言(面向过程)第一个c语言程序及解释:#include <stdio.h>//头文件 std-标准 i-input输入 o-output 输出//要想使用printf 就得调用这个头文件//main函数是程序的入口//在一个工程内main函数有且只有一个int main() {原创 2020-08-09 10:29:08 · 393 阅读 · 1 评论 -
C语言的数据类型
数据类型:char //字符数据类型short //短整型int //整型long //长整型long long //更长的整型float //单精度浮点数double //双精度浮点数为什么整型要分这么多种?因为一些值的取值范围有限,所以用不同的类型去创建不同类型的变量,提高了空间利用率。计算机中的单位:(由小到大)Bit、Byte、KB、原创 2020-08-09 19:58:28 · 214 阅读 · 0 评论 -
两数求最大值 和 交换两个数字
两数求最大值:#include<stdio.h>int main() { //普通比较 int num1 = 0; int num2 = 0; printf("请输入两个数的大小:\n"); scanf("%d %d", &num1, &num2); if (num1 > num2) printf("两个数中最大的数是%d\n", num1); else printf("两个数中最大的数是%d\n", num2); return 0;}#in原创 2020-08-11 09:57:56 · 578 阅读 · 0 评论 -
关键字static
在c语言中,static用来修饰变量和函数1、修饰局部变量-静态局部变量2、修饰全局变量-静态全局变量3、修饰函数-静态函数1、修饰局部变量://代码1#include <stdio.h>void test(){ int i = 0; i++; printf("%d ", i);}int main(){ int i = 0; for(i=0; i<10; i++) { test(); } retur原创 2020-08-12 14:56:04 · 134 阅读 · 1 评论 -
分支语句(if、switch)
什么是语句?c语言中由一个 ; 隔开的就是一条语句例如:printf("haha");1+3;;分支语句(选择结构)if语句:if语法结构:if语句的语法结构是怎么样的呢?(表达式比特科技)语句;if(表达式)比特科技语句1;else语句2;//多分支if(表达式1)语句1;else if(表达式2)语句2;else语句3;课堂演示代码:#include <stdio.h>//代码1int main(){int age = 0;原创 2020-08-15 14:23:40 · 243 阅读 · 0 评论 -
函数判断素数,打印100到200之间的素数
#include<stdio.h>#include<math.h>int prime(int n){ int i = 0; for (i = 2;i <= sqrt(n);i+=2) { if (n % i == 0) { return 0; break; } } return 1;}int main(){ int i = 0; for (i = 100;i < 200;i++) { if (prime(i)原创 2020-08-22 16:06:13 · 2448 阅读 · 3 评论