- 博客(22)
- 资源 (4)
- 收藏
- 关注
原创 两个整数的二进制数有多少的位不同
计算两个整数的二进制数有多少个位不同,我们首先可以想到异或操做:如果对应位相同就是0,否则就是1.通过计算这个新数的二进制数1的个数就可以计算出这两个二进制数有多少个位不同。完整代码如下,需要注意的#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>int main(){...
2018-11-26 12:03:17
789
原创 操作符
对于操作符,根据我所掌握的内容可以总结如下:1.算数操作符算数操作符就是我们最常见的“加减乘数模”:+ - * / %没有啥可以说的,需要注意的有两点1.两个整数相除是整数,所以结果会自动取整,这就给我们的计算带来了误差,误了避免这种误差,我们常常将被除数转化为浮点型数据。例如1/2 结果就是0,这很明显有错误,为了保证正确性,只需要写成1.0/2即可。...
2018-11-25 13:44:46
184
原创 (详细)杨辉三角
杨辉三角就是像下面数列一样,通过观察,可以看到下一行的数据是上一行相邻数的和。我们就可以根据这个规律来写代码。 1 1 1 1 2 1 1 3 3 1 ...
2018-11-24 20:31:46
604
原创 不引入中间变量交换数值
这个问题就用到了异或操作,异或^:如果两个数的对应位相同就是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
274
原创 逻辑推理杀人凶手
原题: 日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个 嫌疑犯的一个。以下为4个嫌疑犯的供词。 A说:不是我。 B说:是C。 C说:是D。 D说:C在胡说 已知3个人说了真话,1个人说的是假话。 现在请根据这些信息,写一个程序来确定到底谁是凶手。 分析 :3个人...
2018-11-22 11:01:18
1282
原创 用C语言来根据运动员的描述判断他们的名次
逻辑推理题的原题描述是这样的:5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果 A选手说:B第二,我第三; B选手说:我第二,E第四; C选手说:我第一,D第二; D选手说:C最后,我第三; E选手说:我第四,A第一; 比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。分析:1...
2018-11-19 12:59:43
938
原创 三子棋游戏
大家都玩过五子棋,其实三子棋与五子棋是一样的,只是棋子的数量不同而已。先定义两个常量 #define ROW 3 #define COL 31.先对棋盘进行初始化,每个没有落子的位置都是空格,所以可以用空格赋值给当前位置的字符。void init()//棋盘初始化{ for (int row = 0; row < ROW; row++) { ...
2018-11-17 15:15:04
260
原创 计算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
3226
原创 两种方法打印水仙花数
一个三位数,它的个位的立方加上十位的立方再加上百位的立方等于这个数本身的话,此数叫作水仙花数.如:某三位数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
1162
原创 猜数字游戏
所谓的猜数字游戏就是电脑随机产生一个数字,让用户猜这个数字的大小,当然这个数字是有大小范围的,在这里我们设置大小范围为(0,100)。1.电脑县随机产生一个0到100的数字, random_num = rand() % 100 + 1。2.用户猜测这个数字大小,用户输入所猜数字。用户一般会用折半查找的思维来猜测数字的大小。3.电脑判断这个数字:如果大于这个随机数就提示“猜大了”...
2018-11-15 08:44:18
369
原创 模拟密码登录
模拟密码登录场景,首先设置密码,然后登录输入密码,如果密码正确,则显示登录成功,密码错误可以重新输入,输入三次后密码还不正确的话就提示登录失败。#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){ c...
2018-11-14 09:59:34
2563
原创 揭门帘打印字符串
所谓揭门帘打印字符串就是多个字符从两端移动,向中间汇聚,这里以I like you!! !为例,打印效果如下:完整代码如下,在代码中加入Sleep函数,可以减小打印速度。需要加入头文件#include <windows.h> #include <stdio.h>#include <stdlib.h>#include <string.h&...
2018-11-14 09:58:28
233
原创 四种方法计算字符串的长度
在这里我提供四种方法计算字符串的长度:1.使用递归函数。2.数数,从第一个字符开始数数,没遇到一个字符,长度加一,直到遇到"\0",停止数数。3.使用strlen函数,使用此函数时,需包含头文件# include <string.h> 4.使用sizeof,对于字符串,一定要减去1,因为字符数组的末尾有一个"\0",size=sizeof(str)/sizeof(st...
2018-11-13 09:59:41
30689
原创 从右向左冒泡排序
前面写的冒泡排序是从左边向右找较大值,先找到最大值,然后依次找到次最大值,从右往左排序。这篇文章再次从右边往左找最小值,先将最小值找到,再找次较小值,从左往右排序。我们先定义三个值int size=sizeof(arr)/sizeof(arr[0]);//数组的大小int cur;//current 当前值int bound;//边界(0,size-1]就可以表示整个数组下标的区间,...
2018-11-12 13:16:02
1121
原创 倒序打印数组
上篇文章写了如何用递归的方法倒序打印字符串,这篇文章就介绍一个比较简单的通俗易懂的普通方法来打印数组。核心思想为交换最前面的数和最后面的数,例如1 2 3 4 第一次调用将1和4交换位置,第二次调用将2和3调用位置,如果有更多的数,就依次类推。代码具体如下:#include <stdio.h>#include <stdlib.h>void swap(int ...
2018-11-11 12:31:14
801
原创 使用递归倒序打印字符串
例如,字符串abcdefg ,则打印结果为gfedcba,使用递归定义的函数如下:char reverse_string(char* string){ string++; if (*string != '\0') { reverse_string(string); } string--; printf("%3c", *stri...
2018-11-10 20:49:37
740
原创 按序打印整数的每一位
例如,整数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
165
原创 用递归求斐波那契数
斐波那契数是第一个数和第二个数都为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
414
原创 冒泡排序
所谓的“冒泡排序”又叫“起泡排序”,基本思路是:每次将两个相邻的数进行比较,将小数调到前面,大数留在后面。例如:有6个数:9,8,6,4,2,0,现在要将他们正序排列。如左图所示:第一趟排序后,将最大数9排到了最后面,即9已经沉底,而小数上升,每个上升的数每次上升一位。如右图所示,为第二趟排序,对余下的前面5个数进行新一轮排序,可以看到次大的数8已经下沉。以此规律进行下去,如果...
2018-11-06 11:38:17
129
原创 使用循环语句打印菱形梅花阵
使用*来打印一个实体的菱形图案,大多数人会按照打印的内容使用printf直接打印,在这里我推荐一个使用循环语句打印 菱形梅花阵的方法,如图所示,是菱形的图案 可以看到一共有13行,最中间的是第7行,一共有13个*,下一行总比上一行多两个或者少两个*, 所以分步打印菱形,先打印最上面的7行,再打印下面的6行。 用i控制行数,用j控制每一行的*,每一行最后面的空格不打印,...
2018-11-05 12:01:05
1307
原创 使用函数打印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
2733
原创 编程人生从现在出发
鉴于本人的第一篇博客,在此先自我介绍,我叫陈亚荣,西安工业大学学生,目前大三,信息管理与信息系统专业,对于一个已经大三的老学生来说,现在学习编程有些晚,但是学习是永无止境的,现在学习也来得及。 高考填志愿时,虽然对计算机充满了兴趣,但考虑到家人,放弃了与计算机有关的专业,选择了我一无所知的信管,但是我不后悔,我还可以学习计算机语言,学习编程。 C语言是一...
2018-10-25 12:10:47
183
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人