C程序
太阳是我啃圆的 i
这个作者很懒,什么都没留下…
展开
-
两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
问题:编程实现:两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?输入例子:1999 2299输出例子:7基本思路:将a和b从最高位依次后移(32位int型变量从最高位右移31位,第二位右移30位,依次递推到最后一位)到最后一位后进行&1运算判断两个 值是否相等。代码:#define _CRT_SECURE_NO_WARNINGS#include&...原创 2019-10-19 23:11:52 · 140 阅读 · 0 评论 -
输出一个二进制整数的每一位
问题:输出一个整数的每一位。基本思路:将整数的每一位都后移到最后一位并按位&1并输出。代码:#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>void output(int num){ printf("输出为:"); //从最高位到最低位依次后移到最后一位并按位...原创 2019-10-19 22:49:20 · 1726 阅读 · 0 评论 -
获取一个数二进制序列中所有的偶数位和奇数位
问题:获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。基本思路:1.要得到偶数位的输出需要将偶数位每一位右移到最后一位并按位&1并输出,32位int型变量最高位偶数位需要右移31位到最后一位,第二位偶数位需要右移29位到最后一位,以此类推知道所有的偶数位输出。2.要得到奇数位用同样的思路只是最高位右移30位到最后一位,第二位右移28位,以此类推。代码:#def...原创 2019-10-19 22:43:14 · 396 阅读 · 0 评论 -
写一个函数返回参数二进制中 1 的个数
问题:写一个函数返回参数二进制中 1 的个数比如: 15 0000 1111 4 个 1程序原型:int count_one_bits(unsigned int value){// 返回 1的位数}基本思路:如同十进制求一个数字中1的个数,用这个数字除以十取余数,判断余数是不是1,如果是的话则个数加一,判断结束后除以十去掉最后一位继续下一次判断。二进制求1的个数一样的思路,只是...原创 2019-10-19 22:12:22 · 115 阅读 · 0 评论 -
递归方式实现打印一个整数的每一位
问题:递归方式实现打印一个整数的每一位基本思路:用递归函数将n的位数每次除去最后一位放入堆栈中,当n就剩余一位时,将存入的数据开始取出并输出最后一位。代码:#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>void print(int n){ //如果n大于9则将n/10(去...原创 2019-10-13 21:49:16 · 322 阅读 · 0 评论 -
递归和非递归分别实现求n的阶乘
问题:递归和非递归分别实现求n的阶乘 。递归:基本思路:每次调用递归函数进行n*(n-1)的操作,直到乘到1.代码:#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int fact(int n){ //判断n是否为1,是的话说明阶乘乘到最后一个1,返回1. if (n ...原创 2019-10-13 21:38:51 · 503 阅读 · 0 评论 -
递归和非递归分别实现strlen
问题:递归和非递归分别实现strlen 。原创 2019-10-13 21:23:21 · 85 阅读 · 0 评论 -
编写一个函数 reverse_string(char * string)(递归实现)
问题:编写一个函数 reverse_string(char * string)(递归实现)实现:将参数字符串中的字符反向排列。要求:不能使用C函数库中的字符串操作函数。代码:#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>void reverse_string(char* s...原创 2019-10-13 16:29:34 · 261 阅读 · 0 评论 -
写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和
问题:写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和,例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19代码:#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int Digitsum(int n){ if (n &l...原创 2019-10-12 23:06:24 · 654 阅读 · 0 评论 -
编写一个函数实现n^k,使用递归实现
问题:编写一个函数实现n^k,使用递归实现基本思路:编写函数pow(n,k)用来求n^k.此问题可以分解为n^k 就是n*n^(k-1);n乘n的k-1次方就是n乘n乘n的k-2次方;······在函数体中先判断k是否为0,如果是0返回1;如果不是返回的值为递归调用pow()函数进行 n * pow(n, k - 1)求解。代码:#define _CRT_SECURE_NO_W...原创 2019-10-12 17:46:40 · 595 阅读 · 0 评论 -
递归和非递归分别实现求第n个斐波那契数。
斐波那契数:斐波那契数亦称之为斐波那契数列、又称黄金分割数列、费波那西数列、费波拿契数、费氏数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……在数学上,斐波那契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=Fn-1+Fn-2(n>=2,n∈N*)。简单来说就是第一、二位之后的每个数都是它前边两个数的和。递归方式:建立Fib(n)函数求n的斐波那契数。判断n...原创 2019-10-12 17:30:53 · 351 阅读 · 0 评论 -
有关函数用法的部分示例。
程序一:1.实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定,输入9,输出99口诀表,输入12,输出1212的乘法口诀表。代码:#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>void output(int n){int i, j, num;for (i = 1; ...原创 2019-10-09 12:57:59 · 75 阅读 · 0 评论 -
编写代码模拟三次密码输入的场景。
问题:编写代码模拟三次密码输入的场景。最多能输入三次密码,密码正确,提示“登录成功”,密码错误,可以重新输入,最多输入三次。三次均错,则提示退出程序。基本思路:1.建立一个数组word[]来存放6位的密码。2.创建一个compare()函数对输入的密码和正确的密码进行比较,如果不相等返回0,如果相等则返回1.3.在主函数中输入密码,并调用compare()函数进行比较,在三次的输入机...原创 2019-10-09 12:21:21 · 159 阅读 · 0 评论 -
写代码可以在整型有序数组中查找想要的数字, 找到了返回下标,找不到返回-1.(二分查找)
问题:写代码可以在整型有序数组中查找想要的数字, 找到了返回下标,找不到返回-1.(折半查找)基本思路:1.编写一个search函数进行折半查找,定义左值left为数组第一个元素下标,定义右值right为数组的最后一个元素下标,mid为中间元素下标。2.在查找的过程中在没有找到的情况下,如果左值小于等于右值那么继续查找。3.将需要查找的数与中间元素的值进行比较.(1)如果小于中间值,...原创 2019-10-08 15:01:22 · 334 阅读 · 0 评论 -
完成猜数字游戏。
问题:完成猜数字游戏。基本思路:1.建立一个Game函数来进行猜数字的判断。设置一个随机数(int t = time(0);srand(t);int guess = rand() % 100 + 1;)头文件(#include<time.h>);用户输入猜测的数字与随机数进行比较,如果猜测的数字大于随机数则输出高了,然后重新输入;若低了,则相反。如果猜测的数字与随机数相等的则...原创 2019-10-08 13:23:10 · 317 阅读 · 0 评论 -
求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,
问题:求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,基本思路:要求Sn首先需要知道累加的每一项对应的值。建立一个acc函数来求解,其中根据所对应的项数可以知道每一项所分别含有的位数,通过对每一位的累加得到这一项的值。在主函数中输入a的值,调用acc函数返回每一项的值,进行累加,得到Sn.代码:#define _CRT_SECURE_NO_WARNINGS...原创 2019-10-08 12:59:14 · 259 阅读 · 0 评论 -
求出0~999之间的所有“水仙花数”并输出。
问题:求出0~999之间的所有“水仙花数”并输出。概念解释:“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如;153=153 = 1^3 + 5^3 + 3^3。 ,则153是一个“水仙花数”。基本思路:1.首先编写一个judge函数来进行水仙花数的判断:分别求出一个数n的百位hund = n / 100;十位:tens = (n - hund * 100) / 1...原创 2019-10-07 21:23:29 · 924 阅读 · 0 评论 -
**金字塔
基本思路:写一个output函数进行 * 的输出。在主函数中调用output函数进行输出多少行每行输出多少个的操作。代码:#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>void output(int n){for (int i = 1; i <= n; i++){p...原创 2019-10-07 20:56:00 · 553 阅读 · 0 评论 -
编写程序数一下 1到 100 的所有整数中出现多少次数字9。
问题:编写程序数一下 1到 100 的所有整数中出现多少次数字9。基本思路:首先我们应该了解从1到100的整数中那些都含有数字9,包含两种情况:第一种情况为9.19.29…89(这些数都是除以十取余数为9 );第二种情况为从90…99(这些数都是除以十为9的);将两种情况取并集就得到结果。代码:#define _CRT_SECURE_NO_WARNINGS#include<...原创 2019-10-07 20:39:45 · 312 阅读 · 0 评论 -
计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。
问题:计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。基本思路:这个问题可以看成多项累加的问题1.首先定义累加的结果变量sum(此处sum不能为int型变量)再定义一个控制每一项符号的变量symbol。2.分析每一项发现除符号位外第n项为1/n,相邻两项符号位相反,则在每次累加结束后使符号位symbol=-symbol取相反,第一次符号位为正。代...原创 2019-10-07 19:15:55 · 673 阅读 · 0 评论 -
将数组A中的内容和数组B中的内容进行交换。(数组一样大)
问题:将数组A中的内容和数组B中的内容进行交换。(数组一样大)基本思路:建立两个数组(数组一样长)存放元素,再建立一个中间数组进行交换。代码:#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int main(){int a[4] = { 1, 2, 3, 4 }, b[4]...原创 2019-10-07 17:56:15 · 108 阅读 · 0 评论 -
1.交换两个整数的值、2.不创建临时变量交换两个整数的值、3.求10 个整数中最大值、4.将三个数按从大到小输出
问题1:给定两个整形变量的值,将两个值的内容进行交换。基本思路:设置一个中间变量用来保存交换的数字。代码:#include<stdio.h>#include<stdlib.h>int main(){int a = 1, b = 2, z;z = a;a = b;b = z;printf(“a=%d,b=%d\n”, a, b);system(“pa...原创 2019-10-07 17:33:39 · 75 阅读 · 0 评论 -
判断1000年~2000年之间的闰年
首先要了解怎么算是闰年。闰年需要满足以下两种条件:1.能被4整除,但不能被100整除;2.能被400整除;两个条件取并集则说明是闰年。代码如下:#include<stdio.h>#include<stdlib.h>int main(){int year;for (year = 1000; year <= 2000; year++){if ((y...原创 2019-09-22 17:13:35 · 341 阅读 · 0 评论 -
输出乘法口诀表
1.基本思路将i和j分别作为两个乘数,分别从1~9递增,将两数相乘并做积输出。2.代码如下#include<stdio.h>#include<stdlib.h>int main(){int i, j, num;for (i = 1; i <= 9; i++){for (j = 1; j <= 9; j++){num = ij;printf...原创 2019-09-22 17:09:08 · 143 阅读 · 0 评论 -
打印100~200之间的素数
要打印出100~200之间的素数首先要了解什么是素数。 素数:又称质数,即除了1和它本身不能被其他自然数整除的数。1.基本思路要求100~200之间的素数,需要用到循环的嵌套,数i从100-200递增作为外循环,j作为除数从2开始递增至被除数i(包括i)作为内循环,如果在递增过程中被整除,则结束此内循环。此时判断i和j的值是否相等,如果相等说明i是素数,输出i;如果不相等,则说明i...原创 2019-09-22 17:03:08 · 210 阅读 · 0 评论