
c基础
最最简单的c代码
偶尔会有对知识点的总结
y_y__d_d
这个作者很懒,什么都没留下…
展开
-
在屏幕上打印杨辉三角
杨辉三角如下所示: 0 1 2 3 4 5 60 11 1 12 1 2 13 1 3 3 14 1 4 6 4 15 1 5 10 10 5 16 1 6 15 20 15 6 1创建一个二维数组,用二维数组的下标表示杨辉三角中每个数字的坐标从第2行第1列的数字开始,利用下面的代码实现...原创 2019-08-16 15:35:02 · 155 阅读 · 0 评论 -
5名运动员参加跳水比赛,确定比赛名次问题和4个嫌疑犯有一个凶手问题
一、5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果A选手说:B第二,我第三;B选手说:我第二,E第四;C选手说:我第一,D第二;D选手说:C最后,我第三;E选手说:我第四,A第一;比赛结束后,每位选手都说对了一半,现在通过编程确定比赛的名次。分析题目,将其抽象为具体的问题 设变量a,b,c,d,e分别代表5名运动员使用5个for循环语句(因为是预测,所以每位运动...原创 2019-08-16 18:21:13 · 275 阅读 · 0 评论 -
##计算一个二进制数中1的个数
##计算二进制数中1的个数写一个函数返回参数二进制中 1 的个数比如: 15 0000 1111 4 个 1实现的函数为:int count_one_bits(unsigned int value){//x为输入数字的形参 int count=0;//计数器,在此记录当value为真(即不为0)时,循环体执行的次数,也就是二进制数中,1的个数 while (value){...原创 2019-08-17 22:57:30 · 147 阅读 · 0 评论 -
##获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。获取二进制数的每一位时,使用右移(>>)与(&)1的方法,因为1与(&)0或1时都能获得0和1本身比如一个32位的二进制数,获取第一位,则让该数右移(>>)31位后再与(&)1,则得到该位上的数字#include<stdio.h>#include&...原创 2019-08-19 22:49:38 · 419 阅读 · 1 评论 -
##输出一个整数的每一位
输出一个整数的每一位1.while循环#include<stdio.h>#include<stdlib.h>int main(){ int num = 0; printf("请输入一个数字:"); scanf_s("%d",& num); printf("\n"); int a; while (num){ a = num % 10;//...原创 2019-08-19 22:51:22 · 201 阅读 · 0 评论 -
##调整数组是奇数全部位于偶数前面##在杨氏矩阵中查找一个数是否存在
一、调整数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。该问题的思路:使用两个循环,第一个循环找出所有奇数并输出,第二个循环找出所有偶数并输出。#include<stdio.h>#include<stdlib.h>int main(){ int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };...原创 2019-08-27 17:58:56 · 101 阅读 · 0 评论 -
##将一个字符的前n个字符左旋##判断一个字符串是否为另外一个字符串旋转之后的字符串。
实现一个函数,可以左旋字符串中的k个字符。ABCD左旋一个字符得到BCDAABCD左旋两个字符得到CDAB思路如下:先将要左旋的k个字符逆置,然后将k个字符之后的字符逆置,左后将整个字符串逆置。1.逆置字符串的函数void reverse(char *arr,int m){ char *first = arr; char *end = arr +m - 1; ch...原创 2019-09-02 11:22:22 · 89 阅读 · 0 评论 -
1.求两个数的最大公约数和最小公倍数 2.输入一行字符,分别统计其中有几个英文字母,几个空格,几个数字,几个其它字符。
输入两个正整数m和n,求其最大公约数和最小公倍数#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<math.h>void Common_multiple(int a,int b){ int r = 0, x = 0; while (1){ i...原创 2019-09-02 16:06:48 · 268 阅读 · 0 评论 -
1.求Sn=a+aa+aaa+···+aa···a(n个a)的值。2.求1!+2!+3!+···+20!的值。3.求和
1.求Sn=a+aa+aaa+···+aa···a(n个a)之值,其中a是一个数字,n表示a的位数,n由键盘输入。例#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>int sum_a(int x){ int a = 2; int sum = 0; int num = 0; while (x){ num+= a;//求...原创 2019-09-02 17:32:11 · 671 阅读 · 0 评论 -
有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13,···求出这个数列的前20项和。
看到分数,变量类型要用浮点型,格式化输出也要用相对应的输出符号首先,找出这串数字的规律1 2 3 5 8 13 21···将数字这样展开并去掉重复的数字之后,很容易可以看出,从第三项开始,当前项等于前两项之和(和斐波那契数列有点像,所以借用斐波那契数列的思路)。(以前3个数字1,2,3为例)(1)计算当前分数<2/1>的值(2)将当前数字<3&...原创 2019-09-13 09:57:17 · 18153 阅读 · 0 评论 -
一个球从100m的高度自由落下,每次落地后反弹回原高度的一半,再落下,再反弹。 求它在第10次落地时共经过多少米,第10次反弹多高
一个球从100m的高度自由落下,每次落地后反弹回原高度的一半,再落下,再反弹。求它在第10次落地时共经过多少米,第10次反弹多高这个题目很熟悉,小学或者初中的数学题,曾经被这类型的题目就会头疼脑裂,刚开始看到这个题目还是条件反射的抵触它,但是仔细分析过后,这个纸老虎也就不吓人啦!最重要的是编码实现的话,不用自己动手算啦!O(∩_∩)O哈哈~#include<stdio.h...原创 2019-09-13 11:01:53 · 44981 阅读 · 4 评论 -
有一个字符数组的内容为:"student a am i",将其改为"i am a student"
#include<stdio.h>#include<stdlib.h>#include<string.h>void reverse(char * start, char * last){ char tmp; while (start < last){ tmp = *start; *start = *last; *last = ...原创 2019-08-20 15:50:55 · 128 阅读 · 0 评论 -
C语言运算符总结
c语言所提供的运算符:(上图中有小错误!应该是逗号表达式而不是逗号运算符)1.基本的算数运算符 在键盘上我们以*代替X,以/代替÷。c语言中的除法,与我们数学中的除法是有差异的。例如5/3=?,在数学中,5÷3=1.666……,而在c语言中,5/3=1,舍去了小数部分。在c语言中,两个实数相除的结果是双精度实数,两个整数相除的结果是整数。当两个数相除时,有一个是负数,则舍...原创 2019-08-19 22:30:51 · 1375 阅读 · 0 评论 -
猜数字游戏、折半查找、模拟输入三次密码、按规则输入相应的字符
一、完成猜数字游戏思路如下:用户输入一个数值(数值范围在1~100)电脑生成一个随机数(随机数的范围也确定在1~100)用户输入的值与电脑生成的随机数相等,则输出“答对了!”用户输入的值比电脑生成的随机数大,则输出“答案偏大!”用户输入的值比电脑生成的随机数小,则输出“答案偏低!”用户只有三次机会,如果用户三次输入的值与电脑生成的随机数都不相等,则输出“很抱歉!您的机会已经用完了...原创 2019-07-23 21:36:47 · 493 阅读 · 0 评论 -
c语言 输出指定图形、求水仙花数、求Sn=a+aa+aaa+aaaa+aaaaa的结果
c语言 输出指定图形、求水仙花数、求Sn=a+aa+aaa+aaaa+aaaaa的结果#include<stdio.h>#include<stdlib.h>void main(){ int line = 7; for (int i = 1; i <= line; i++) { for (int j = 1; j <= 2 * i ...原创 2019-07-20 23:13:28 · 635 阅读 · 0 评论 -
输出乘法口诀表、用函数实现两个数的交换、实现一个函数判断year是不是润年、实现一个函数,判断一个数是不是素数
1.实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定,输入9,输出9 * 9口诀表,输入12,输出12 * 12的乘法口诀表。代码如下:#include<stdio.h>#include<stdlib.h>void nine(){ int i, j; for (i = 1; i < 10; i++) { printf("\n"); ...原创 2019-08-05 20:17:11 · 158 阅读 · 0 评论 -
两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?让两个整数右移然后&1再将两个数字异或,结果为1时,说明位(bit)不同#include<stdio.h>#include<stdlib.h>int main(){ int m = 0, n = 0; int i; int count = 0; printf("请输入两个...原创 2019-08-19 22:52:06 · 145 阅读 · 0 评论 -
不使用(a + b) / 2这种方式,求两个数的平均值。
不使用(a + b) / 2这种方式,求两个数的平均值。右移(>>)一位相当于除以2左移(<<)一位相当于乘2在这里,用右移替代除法#include<stdio.h>#include<stdlib.h>int main(){ int a = 0, b = 0; int num; printf("请输入两个数:"); s...原创 2019-08-18 23:44:20 · 86 阅读 · 0 评论 -
三子棋
在三子棋游戏中,首先输出一个菜单,供玩家选择进行游戏或是退出游戏游戏规则:'o'代表玩家落子(玩家落子从键盘输入对应的坐标)'#'代表电脑落子(电脑落子随机生成)在一个3*3的棋盘中,当玩家的棋子在一行、一列或对角线上连成一条线时,则玩家胜利,同理,则是电脑胜利如果棋盘上的棋子落满时。还没有分出胜负,则是平局玩家输入错误时,可以重新输入代码如下:#include...原创 2019-08-07 16:31:49 · 117 阅读 · 0 评论 -
编写一个函数,这个函数使一个二进制数从左到右翻转
比如:在32位机器上25这个值包含下列各位:00000000000000000000000000011001翻转后:(2550136832)10011000000000000000000000000000代码如下:#include<stdio.h>#include<stdlib.h>int main(){ unsigned int n = 25...原创 2019-08-19 16:10:02 · 144 阅读 · 0 评论 -
一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的,请找出这个数字
一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的,请找出这个数字位运算将这组数据放进数组中,遍历所有元素,并将所有元素异或(^)一遍,最终得到的数字就是只出现一次的那个数字。#include<stdio.h>#include<stdlib.h>int main(){ int i; int ret = 0;//给ret赋初值为0,是因为0与任...原创 2019-08-19 17:46:10 · 139 阅读 · 0 评论 -
猴子吃桃问题
猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上,又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天早上剩下的一半零一个。到第10天早上想再吃时,就只剩一个桃子了。求第一天共摘了多少个桃子?这个问题逆推回去就可以算出猴子第1天早上摘了多少桃子从第十天早上的一个桃子开始算,第九天早上的桃子数为(1+1)*2,第八天早上吃的桃子数为...原创 2019-09-13 11:21:50 · 131 阅读 · 0 评论