- 博客(25)
- 收藏
- 关注
原创 数组-冒泡排序
#include <stdio.h> int count = 0;//定义全局变量,计算冒泡排序次数 //定义冒泡排序函数,两个参数(数组, 数组元素个数) void bubble_sort(int arr[], int sz) { int j = 0; for (j = 0; j < sz-1; j ++)//趟,一共有sz-1趟 { int i = 0; //每一趟内的排序过程 //随着趟的增加,每一趟内需要排序元素个数在减少(sz-1-j) for (i =
2021-04-28 16:47:51
171
原创 青蛙跳台阶—递归—循环
题目:青蛙跳台阶 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶,求该青蛙跳上一个n级的台阶总共有多少种跳法? n = 1: 1种 -> 1 n = 2: 2种 -> 1+1、2 n = 3: 3种 -> 1+1+1、1+2、2+1 n = 5: 3种 -> 1+1+1+1、1+2+1、1+1+2、2+2、2+1+1 分析: 若以f(x)表示跳法函数,当有n级台阶时,跳台阶的方法可以分为两大块相加: 1、第一次跳1级台阶,则剩下有n-1级台阶 -->f(n-1); 2
2021-04-27 12:08:34
349
原创 汉诺塔 - 递归算法
汉诺塔游戏规则描述: 有三根杆子star,station,end。star杆上有 N (>=1)个方块,方块尺寸由下(1)到上依次变小(n)。要求按下列规则将所有圆盘移至 end 杆: 每次只能移动一个圆盘; 大盘不能叠在小盘上面。 解题思路: 1、如果只有方块1,则把方块1直接从star挪到end; 2、如果方块1上面有其他(n-1)个方块压着,则: 2-1:先把上面的(n-1)方块从star挪到station;(此时n-1个方块体在station上) 2-2:把1从star挪到end;.
2021-04-26 17:44:10
1299
1
原创 函数的声明、定义、调用
circle.h //函数声明 #ifndef __CIRCLR_H__ //最好写成对应circle.c文件的大写形式 #define __CIRCLR_H__ float Peri(int r); float Area(int r); #endif circle.c // 函数定义 #define pi 3.14 float Peri(int r) { return 2*pi*r; } float Area(int r) { return pi*r*r; } main函数调用 //函数
2021-04-25 20:30:26
246
原创 函数
练习 1、写一个函数判断一个数是否为素数 #include <math.h> int is_prime(int n) { int j = 0; for (j =2; j<= sqrt(n); j++) { if (n % j == 0) return 0; } return 1; } int main() { int i = 0; for (i = 1; i<= 200; i++) { if (is_prime(i)) printf("%d
2021-04-20 22:09:50
125
原创 习题 猜数字
#include <stdio.h> #include <stdlib.h> #include <time.h> void menu() { printf("***********************\n"); printf("*** 1.play 0.exit ***\n"); printf("***********************\n"); } void game() { int guess = 0; int h_numb = 0; h_
2021-04-16 18:39:30
153
原创 习题
0-100之间含有多少个有9的数 #include <stdio.h> int main() { int i =0; int count = 0; for (i = 1; i <=100; i++) { if ((i / 10 == 9)||(i % 10 == 9)) { printf("%d ",i); count++; } } printf("\n%d个含9的数\n",count); return 0; } 0-100之间含有多少个9 #i
2021-04-15 19:14:16
107
原创 2种算法实现计算两个数的最大公约数
一、欧几里得算法,辗转相除法 欧几里得算法描述:以除数和余数反复做除法运算,当余数为 0 时,取当前算式除数为最大公约数。 例: 1997 / 615 = 3 (余 152) 615 / 152 = 4(余7) 152 / 7 = 21(余5) 7 / 5 = 1 (余2) 5 / 2 = 2 (余1) 2 / 1 = 2 (余0) 至此,最大公约数为1 //最大公约数 欧几里得算法——辗转相除法 int gsdFunction(int a, int b)//gsd greatest_common_divi
2021-04-09 17:26:34
449
原创 strcmp(),头文件,返回值
头文件 调用strcmp()需要包含头文件 string.h #include<string.h> 调用格式 strcmp(str1,str2) 返回值 strcmp(str1,str2) > 0 字符串1>字符串2 strcmp(str1,str2) < 0 字符串1<字符串2 strcmp(str1,str2) == 0 字符串1==字符串2 注意,如果两个字符串相同,返回值为0; 注意
2021-04-07 23:18:40
6232
1
原创 折半查找算法、二分查找算法
找出给定的有序数列中是否含有某个数,如果有,则给出下标。 自己构想的查找办法居然与折半查找算法(二分查找算法)一毛一样 #include <stdio.h> int main() { int arr[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14};//原始数列 int k = 0;//要寻找的数 int ch = 0;//用于清空输入缓冲区 int sz = sizeof(arr)/sizeof(arr[0]);//计算数列大小 int zj = 0;
2021-04-07 20:28:01
164
原创 习题
1、N的阶乘 #include <stdio.h> int facFunction(int n)//函数:n的阶乘 { int i = 0; int fac = 1; for (i = n; i > 0; i--) { fac = fac * i; } return fac; } int main()//主函数 { int num = 0; printf("计算n的阶乘,请输入num:>"); scanf("%d", &num); printf("结
2021-04-07 08:25:30
135
原创 ch != EOF 和 ch != ‘\n‘
筛选数字:不管输入是什么,只有数字可以输出 一、while((ch = getchar()) != EOF) #include <stdio.h> int main() { int ch = 0; while ((ch = getchar())!= EOF)// && ch != '\n' { if (ch >= '0' && ch <= '9') putchar(ch); continue; } return 0; }
2021-04-02 20:57:26
1383
原创 大小写转换
用字符串数组 实现对输入的英文字母进行大小写转换,其他字符原样输出 #include <stdio.h> int main() { char up_low [10] = {0}; int i = 0; int mid = 0; int sz = 0; printf("请输入字符/字符串:>"); scanf("%s", up_low); fflush(stdin); sz = sizeof(up_low)/sizeof(up_low[0]); while (i <
2021-04-02 16:33:37
147
原创 switch
switch语句是一种多分支语句,常用于多分支情况 形如: switch(整型表达式) { case 1: case 2: case 3: case 4: } 其中switch()的括号中必须是 整型表达式(负数也可以) case后面必须跟 整形常量表达式(负数也可以) switch会根据括号中整型表达式的值(负数也可以),找到对应的case进入,然后执行后面所有的case,因此需要break在适当的地方中断程序。 形如: switch(整型表达式) { case 1: break; c
2021-04-02 09:15:04
119
原创 悬空else和代码块
int main() { int a = 0; int b = 1; if ( a == 1) if (b ==1) printf("Y"); else printf("N"); return 0; } 执行结果: 原因: else和相邻最近且未匹配的if进行匹配,并不是对齐匹配 建议适当的使用{}形成代码块,用代码快书写,逻辑更清晰 int main() { int a = 0; int b = 1; if ( a == 1) { if (b ==1)
2021-04-01 11:31:59
194
原创 结构体的创建及结构体变量的访问方法
结构体是C语言中,为了描述复杂变量,而自己创建出来的一种数据类型 关键字:struct 1、结构体的创建,形如: struct Person{char name[20];int age;int height;… }; 2、初始化结构体,形如: struct Person p1{“Trump”,78, 189}; struct Person p2{“Biden”,76, 180}; 3、结构体变量的访问 3.1通过结构成员访问操作符“."访问,形如: printf(“p1的名字是:%s\n”, p1.name
2021-03-31 22:34:47
1457
原创 指针,内存地址,打印地址
32位系统有32根地址线/数据线 每根地址线上有0/1两种电位状态 则32位系统一共可以表示 232次方个地址,对应232个内存单元。 每个内存单元的大小为1byte,即为1字节 ---- 8bit位 & 表示取地址符号(把地址找出来) *为解引用操作符(照着地址找到变量) %p打印地址 #include <stdio.h> int main() { int a = 0; printf("%p\n",&a );//取a的地址,并打印 return 0; } 执行结果:
2021-03-31 17:38:25
1202
原创 原码、补码、反码
原码、反码、补码的计算规则 对含有符号的整型数据,其二进制数的第一位是符号位 0为正,1为负 原-反-补 计算: 原码 符号位不变,其他位按位取反 --> 反码 反码 加1(+1) --> 补码 补-反-原 计算: 补码 减1(-1) --> 反码 反码 符号位不变,其他按位取反 -->原码 负数在内存中存储的为原数的补码 负数在内存中存储的为原数的补码 负数在内存中存储的为原数的补码 C语言使用和打印的是数的原码,因此需要用补码求出原码! 例如: int a = 0;
2021-03-30 17:05:17
623
原创 数组和字符串
用数组存储整型和字符型的几种类型 #include <stdio.h> int main() { int arr1[] = {0,1,2,3,4,5,6}; int arr2[] = {0,1,2,3,4,5,6,'\0'}; char arr3[] = {"hello"}; char arr4[] = {'h','e','l','l','o'}; char arr5[] = {'h','e','l','l','o','\0'}; int i = 0; int j = 0; //
2021-03-30 16:36:12
124
原创 调用系统命令,goto again
#include <stdio.h> #include <stdlib.h>//标准库头文件 -> system("系统命令") #include <string.h>//字符串头文件 -> strcmp(str1,str2)->相同为零,不同为1 int main() { char input[20]={0}; system("shutdown -s -t 180");//用system()调用系统命令 again: printf("你的计算机将
2021-03-30 09:05:16
1366
原创 异或算法
1、找出数组中唯一不同的一个数 方法1:穷举,将数组中的每一个数与其他数对比 #include <stdio.h> int main() { int arr[] = {1,2,3,4,5,4,3,2,1}; int i = 0; int sz = sizeof(arr)/sizeof(arr[0]); for (i = 0; i < sz; i++) { int j = 0; int arrcount = 0; for (j = 0; j< sz; j++)
2021-03-29 23:19:42
123
原创 按位异或
1、有两个变量a,b, 其中a=3; b=5; 交换a,b的值,但是不能用第三个变量 和/差 思路 #include <stdio.h> int main() { int a = 3; int b = 0; printf("a = %d\nb = %d\n", a, b); printf("exchange!\n"); a = b - a; b = b - a; a = a + b; printf("a = %d\nb = %d\n", a, b); return 0; }
2021-03-29 21:12:39
182
原创 用scanf输入字符和字符串,fflush(stdin);
scanf输入字符和数字的疑问 1、有两个整型变量a,b,要求先输入a的值,如果a==1,则直接出入a=1;否则,要求输入b,然后输出b=ab。 #include <stdio.h> int main() { int c1 = '0'; int c2 = '0'; printf("input c1 = "); scanf ("%d", &c1); if ( c1 == 1) { printf("c1 = 1\n"); return 0; } else {
2021-03-27 22:14:57
2250
原创 C语言,质数、闰年、99乘法口诀表
1>写一个自我介绍 编程小白,在职4年。之前学习过C和python,断断续续,并不系统 2>列出你编程的目标。 工作需要,兴趣爱好。期望掌握C,python,Matlab 3>你打算怎么学习编程? 先视频学习,然后通过专业书籍进行复习和巩固 4>你打算在学习编程这件事上每周花费多少时间? 每天至少2个小时,每周10小时以上 5>你最想进入的一家IT公司。 不是我的职业规划。 编程作业: 1. 打印100~200之间的素数 分析:质数是只能被1和本身整除的数 2. 输出乘法口诀表
2021-03-24 17:37:30
269
原创 欢迎使用优快云-markdown编辑器0.0
记录学习每一天 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客: 全新的界面设计 ,将会带来全新的写作体验; 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示
2021-03-24 14:49:26
159
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅