![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言学习
ComAppleTree
这个作者很懒,什么都没留下…
展开
-
求两个数的最大公约数
1、什么是最大公约数?最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。2、求解方法?这里我们使用枚举的方法来求解此问,定义一个中间变量,令其值为要求公约数的两个数中的一个数,然后让其自减,一直到这两个数同时对这个中间变量取模不为零为止。#include <stdio.h>int comDivisor(int a, int b){ ...原创 2019-03-16 22:48:47 · 162 阅读 · 0 评论 -
实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定, 输入9,输出9*9口诀表,输入12,输出12*12的乘法口诀表。
1、解决方案设计两重循环,让他们分别循环到n即可,然后打印他们的乘积。2、具体实现void printMunti(){ int n = 0; //n confirm the number of line int i = 0; int j = 0; scanf("%d", &n); for(i = 1; i<= n; i++)//...原创 2019-03-27 16:20:10 · 431 阅读 · 0 评论 -
编写代码模拟三次密码输入的场景。 最多能输入三次密码,密码正确,提示“登录成功”,密码错误, 可以重新输入,最多输入三次。三次均错,则提示退出程序。
利用C标准库的strcmp()函数即可,另外设计一个变量统计输密码就行了,这里我们假设正确密码是123456, 接下就直接上代码了!void login(){ char password[20]; int count = 3;//最多输入3次密码 int i = 0; for(i = 0;i < 3;i++) { printf("请输入密码:"); scan...原创 2019-03-27 16:01:42 · 953 阅读 · 0 评论 -
编写一个程序,可以一直接收键盘字符, 如果是小写字符就输出对应的大写字符, 如果接收的是大写字符,就输出对应的小写字符, 如果是数字不输出。
1、解决方案从ASCII码表我们可以知道大写字母AZ是的十进制值为6590,小写字母az的十进制值为97122,不难发现对应的大小写子母间总是相差32的,比如a的97和A的65等,那么我们就可以设计,当输入是小写字母时,我们让它减32,以字符形式输出就是对应的大写,输入是大写字母让它加32即为对应的大写字母。2、具体实现void exchangeLetter(){ int ch...原创 2019-03-27 15:29:54 · 415 阅读 · 0 评论 -
写代码可以在整型有序数组中查找想要的数字, 找到了返回下标,找不到返回-1.(折半查找)
1、什么是折半查找从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。这种算法每一次比较都使搜索范围缩小一半。2、算法流程首先确定整个查找区间的中间位置 mid = ( left + right )/2 ;用待查关键字...原创 2019-03-27 09:25:47 · 292 阅读 · 0 评论 -
猜数字游戏
1、问题描述程序每次执行都会随时间产生一个100以内的随机数,然后玩家来猜测这个数字,键入这个你猜测的数字给程序,程序会告诉你猜对了或者猜大了或者猜小了。2、解决方案首先利用C标准库的stdlib,中的srand()函数来产生一个随时间变化的随机数种子,然后利用rand()函数产生玩家要猜的这样一个随机数,然后利用循环让玩家猜,我们这里不限制猜测次数,让玩家猜对为止。3、具体实现vo...原创 2019-03-26 21:04:50 · 191 阅读 · 0 评论 -
求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字, 例如:2+22+222+2222+22222
1、解决方案不难发现,每一项都是前一项的10倍再加上这个数字,既有a(n) = 10*a(n-1) + num, 我们利用循环即可实现。2、具体实现int series(int num, int n)//指定一个数字num, 指定项数n{ int result = 0; int list = 0; for(int i = 0; i < n ; i++ ) ...原创 2019-03-26 20:05:36 · 394 阅读 · 0 评论 -
求出0~999之间的所有“水仙花数”并输出。
1、什么是水仙花数?水仙花数也被称为超完全数字不变数、自恋数,是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。2、求解0~999的水仙花数设计三重循环,最外层循环百位,中间层循环十位,最里层循环个位,遍历0~999所有数字进行判断即可。3、具体实现void deffodil(){ for(int i = 0;...原创 2019-03-26 20:00:03 · 472 阅读 · 0 评论 -
输出一个由星花组成图案
1、问题详情打印一个三角形,由星星组成的那种。2、解决方案不难看出从上到下中间之前,星星的数量是以2递增的,中间以下,又以2递减,所以我们可以设计一个双重循环来实现这个功能。3、具体实现void printStar() //上半部分的星号{ for(int i = 0; i < 12; i += 2) { for(int j = 0; j &l...原创 2019-03-26 19:57:36 · 1552 阅读 · 0 评论 -
将数组A中的内容和数组B中的内容进行交换。
1、解决方案设计一个循环,对两个数组同时依次遍历,每变一次都执行交换操作,这样遍历结束就完成了数组的交换。2、具体的交换方法的实现void exchangeArray(int max, int* a, int* b)//exchange the two same size arrays, num is the size{ //交换的实现 int temp = 0; ...原创 2019-03-21 17:06:27 · 654 阅读 · 0 评论 -
计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值
1、思考我们虽然可以通过直接键入数值让电脑计算,但是考虑一下工作量,从1一直敲到百分之一,况且还有正负号的变化,想想就头疼。2、解决方案每加一项就变一次正负号,不难想到可以在-1这个数字上做文章,利用-1的偶数次幂为正,奇数次幂为负的特点,对-1进行幂运算,让他的指数随着分母的递增而递增,就可以实现交替的正负了。3、具体实现double result()//返回1/1-1/2+1/3...原创 2019-03-17 20:52:14 · 999 阅读 · 0 评论 -
冒泡排序
1、什么是冒泡排序?我们可以将要排序的数据看成是一瓶可乐,在这瓶可乐中,大的气泡往上,小的气泡往下沉,按照这个规则,所有的数据将按照从大到小的顺序排列。2、算法原理比较相邻的元素。如果第二个比第一个大,就交换他们两个。对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需...原创 2019-03-17 20:26:16 · 93 阅读 · 0 评论 -
编写程序数一下 1到 100 的所有整数中出现多少次数字9。
1、思考答案我们一思考就能得出,9出现的次数是20,即9、19、29、39、49、59、69、79、89、90、91、92、93、94、95、96、97、98、99。但是现在我们要用程序让计算机去干计数9出现次数这件事,我们该怎样设计这样一个程序呢?2、解决思路对笔者而言,既然只看9,首先想到的是看位来计数,现在我们要考虑一下按这种思路如何设计,笔者认为首先得要定义一个结构体,让我们可以...原创 2019-03-21 09:30:59 · 748 阅读 · 0 评论 -
求10 个整数中最大值
1、解决方案我们可以设置一个长为10的数组array[10],为了不破坏原来的数组,我们另外定义max = 0,让max依次与数组中的数比较,遇到比max大的就交换值,以保证max中的值始终是最大的。2、具体实现int findMaxValue(int* array){ int max = 0; for(int i = 0; i < 10; i++) ...原创 2019-03-21 09:15:01 · 266 阅读 · 0 评论 -
不用中间变量交换两个数的值
1、使用求和的法实现无中间变量交换数据。这个方法简洁明了,但是在处理浮点数时可能会有精度损失。#include <stdio.h>void noTempExcahange2(int* a, int* b)//交换函数,交换两个数的值,不创建中间变量,以和的方式{ *a = *a + *b; *b = *a - *b; *a = *a - *b;...原创 2019-03-17 00:04:24 · 434 阅读 · 0 评论 -
实现一个函数判断year是不是润年
1、什么是闰年闰年分两种,普通闰年和世纪闰年:普通闰年: 能被4整除,但是不能被100整除;世纪闰年: 能被400整除;2、解决方案基由闰年的定义,我们就可以写一条if语句,判断其成立条件即可;3、具体实现bool judgeRunNian(int year)//year为所要判断的年份{ if(((year % 4 == 0) && (year %...原创 2019-03-27 16:44:49 · 470 阅读 · 0 评论