C基础
小曦的鸭绒
这个作者很懒,什么都没留下…
展开
-
冒泡排序
所谓的“冒泡排序”又叫“起泡排序”,基本思路是:每次将两个相邻的数进行比较,将小数调到前面,大数留在后面。例如:有6个数:9,8,6,4,2,0,现在要将他们正序排列。如左图所示:第一趟排序后,将最大数9排到了最后面,即9已经沉底,而小数上升,每个上升的数每次上升一位。如右图所示,为第二趟排序,对余下的前面5个数进行新一轮排序,可以看到次大的数8已经下沉。以此规律进行下去,如果...原创 2018-11-06 11:38:17 · 121 阅读 · 0 评论 -
(详细)杨辉三角
杨辉三角就是像下面数列一样,通过观察,可以看到下一行的数据是上一行相邻数的和。我们就可以根据这个规律来写代码。 1 1 1 1 2 1 1 3 3 1 ...原创 2018-11-24 20:31:46 · 579 阅读 · 0 评论 -
不引入中间变量交换数值
这个问题就用到了异或操作,异或^:如果两个数的对应位相同就是0,不同就是1。完整代码如下:#include <stdio.h>#include <stdlib.h>int main(){ int a = 10; int b = 20; a = a^b; b = a^b; a = a^b; printf("%d %d\n", a, b); s...原创 2018-11-23 13:46:52 · 265 阅读 · 0 评论 -
操作符
对于操作符,根据我所掌握的内容可以总结如下:1.算数操作符算数操作符就是我们最常见的“加减乘数模”:+ - * / %没有啥可以说的,需要注意的有两点1.两个整数相除是整数,所以结果会自动取整,这就给我们的计算带来了误差,误了避免这种误差,我们常常将被除数转化为浮点型数据。例如1/2 结果就是0,这很明显有错误,为了保证正确性,只需要写成1.0/2即可。...原创 2018-11-25 13:44:46 · 164 阅读 · 0 评论 -
两种方法打印水仙花数
一个三位数,它的个位的立方加上十位的立方再加上百位的立方等于这个数本身的话,此数叫作水仙花数.如:某三位数abc,如果满足a^3+b^3+c^3=abc,则abc是水仙花数。下面我提供两种方法打印水仙花数。1.下面这个代码是比较好理解的,直接从水仙花的定义,结构a^3+b^3+c^3=abc入手,分别定义个位、十位、百位构造水仙花数。#include<stdio.h>#in...原创 2018-11-16 08:23:27 · 1148 阅读 · 0 评论 -
计算a+aa+aaa+...
计算a+aa+aaa+aaaa+...,例如,当a=2时,计算前5项和就是计算2+22+2222+22222。首先我们要构造这样的数,很明显,22222=2+2^10+2^100+2^1000+2^10000,然后在相加。#include<stdio.h>#include<stdlib.h>#include<math.h>int main(){...原创 2018-11-16 08:27:56 · 3078 阅读 · 0 评论 -
揭门帘打印字符串
所谓揭门帘打印字符串就是多个字符从两端移动,向中间汇聚,这里以I like you!! !为例,打印效果如下:完整代码如下,在代码中加入Sleep函数,可以减小打印速度。需要加入头文件#include <windows.h> #include <stdio.h>#include <stdlib.h>#include <string.h&...原创 2018-11-14 09:58:28 · 221 阅读 · 0 评论 -
四种方法计算字符串的长度
在这里我提供四种方法计算字符串的长度:1.使用递归函数。2.数数,从第一个字符开始数数,没遇到一个字符,长度加一,直到遇到"\0",停止数数。3.使用strlen函数,使用此函数时,需包含头文件# include <string.h> 4.使用sizeof,对于字符串,一定要减去1,因为字符数组的末尾有一个"\0",size=sizeof(str)/sizeof(st...原创 2018-11-13 09:59:41 · 30078 阅读 · 0 评论 -
从右向左冒泡排序
前面写的冒泡排序是从左边向右找较大值,先找到最大值,然后依次找到次最大值,从右往左排序。这篇文章再次从右边往左找最小值,先将最小值找到,再找次较小值,从左往右排序。我们先定义三个值int size=sizeof(arr)/sizeof(arr[0]);//数组的大小int cur;//current 当前值int bound;//边界(0,size-1]就可以表示整个数组下标的区间,...原创 2018-11-12 13:16:02 · 937 阅读 · 0 评论 -
猜数字游戏
所谓的猜数字游戏就是电脑随机产生一个数字,让用户猜这个数字的大小,当然这个数字是有大小范围的,在这里我们设置大小范围为(0,100)。1.电脑县随机产生一个0到100的数字, random_num = rand() % 100 + 1。2.用户猜测这个数字大小,用户输入所猜数字。用户一般会用折半查找的思维来猜测数字的大小。3.电脑判断这个数字:如果大于这个随机数就提示“猜大了”...原创 2018-11-15 08:44:18 · 351 阅读 · 0 评论 -
用递归求斐波那契数
斐波那契数是第一个数和第二个数都为1,从第三个数开始,后面的是是前面相邻两个数的和。定义的函数如下所示:int fib(int m){ if (m == 1 || m == 2) return 1; else { return (fib(m - 1) + fib(m - 2)); }}if语句为了确定第一位和第二位都为1...原创 2018-11-08 11:12:14 · 399 阅读 · 0 评论 -
模拟密码登录
模拟密码登录场景,首先设置密码,然后登录输入密码,如果密码正确,则显示登录成功,密码错误可以重新输入,输入三次后密码还不正确的话就提示登录失败。#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){ c...原创 2018-11-14 09:59:34 · 2540 阅读 · 0 评论 -
使用循环语句打印菱形梅花阵
使用*来打印一个实体的菱形图案,大多数人会按照打印的内容使用printf直接打印,在这里我推荐一个使用循环语句打印 菱形梅花阵的方法,如图所示,是菱形的图案 可以看到一共有13行,最中间的是第7行,一共有13个*,下一行总比上一行多两个或者少两个*, 所以分步打印菱形,先打印最上面的7行,再打印下面的6行。 用i控制行数,用j控制每一行的*,每一行最后面的空格不打印,...原创 2018-11-05 12:01:05 · 1265 阅读 · 0 评论 -
使用函数打印n*n的乘法口诀表
使用函数乘法打印乘法口诀表,输入5,输出5*5的乘法口诀表,输入12,打印12*12的乘法口诀表,入下图所示,输入10,打印10*10的乘法表 代码如下:#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int mul(n){ int i, j; for (i = ...原创 2018-11-05 11:00:07 · 2709 阅读 · 0 评论 -
倒序打印数组
上篇文章写了如何用递归的方法倒序打印字符串,这篇文章就介绍一个比较简单的通俗易懂的普通方法来打印数组。核心思想为交换最前面的数和最后面的数,例如1 2 3 4 第一次调用将1和4交换位置,第二次调用将2和3调用位置,如果有更多的数,就依次类推。代码具体如下:#include <stdio.h>#include <stdlib.h>void swap(int ...原创 2018-11-11 12:31:14 · 768 阅读 · 0 评论 -
使用递归倒序打印字符串
例如,字符串abcdefg ,则打印结果为gfedcba,使用递归定义的函数如下:char reverse_string(char* string){ string++; if (*string != '\0') { reverse_string(string); } string--; printf("%3c", *stri...原创 2018-11-10 20:49:37 · 726 阅读 · 0 评论 -
按序打印整数的每一位
例如,整数1234 则打印1 2 3 4,使用递归的思维写出来的代码如下所示:void printnum(int m){ if (m > 9) printnum(m / 10); printf("%d\t", m % 10);}完整的代码如下所示:#include <stdio.h>#include...原创 2018-11-09 19:43:13 · 159 阅读 · 0 评论 -
两个整数的二进制数有多少的位不同
计算两个整数的二进制数有多少个位不同,我们首先可以想到异或操做:如果对应位相同就是0,否则就是1.通过计算这个新数的二进制数1的个数就可以计算出这两个二进制数有多少个位不同。完整代码如下,需要注意的#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>int main(){...原创 2018-11-26 12:03:17 · 762 阅读 · 0 评论