![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c语言
莫秃
没有人比我更懂bug
展开
-
不允许创建临时变量,交换两个数的内容.C语言表示
这个问题难点在于算法,不创建新的临时变量交换两个数.只有把两个数相加,赋值给其中一个再把另一个减去如此一来就实现了交换数值.核心算法a=a+b b=a-b a=a-b代码如下:#include<stdio.h>int main() { int a=1,b=2; printf("交换前a=%d,b=%d\n", a, b); a = a + b; b = a - b;...原创 2019-11-12 18:15:25 · 104 阅读 · 0 评论 -
求两个数的最大公约数(辗转相减法)
更相减损法:也叫更相减损术,是出自《九章算术》的一种求最大公约数的算法,它原本是为约分而设计的,但它适用于任何需要求最大公约数的场合。《九章算术》是中国古代的数学专著,其中的“更相减损术”可以用来求两个数的最大公约数,即“可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也。以等数约之。”翻译成现代语言如下:第一步:任意给定两个正整数;判断它们是否都是偶数。若是,则用2约简;...原创 2019-11-12 18:01:54 · 10267 阅读 · 0 评论 -
将10个数按从大到小输出。
如题这种排列大小的问题都可以用冒泡排序法,讲大的数或者小的数一个一个比较之后向上移动,从而达到排列的效果.代码如下#include<stdio.h>int main() { int i, j,x; char a[10] = { 3,8,1,5,6,7,2,9,4,0}; for (j = 0; j < 10; j++) { for (i = 0; i < 1...原创 2019-11-12 17:16:07 · 1445 阅读 · 0 评论 -
求10 个整数中最大值。
先初始化一个变量,将数组中一个数复制给它,再让它与其他数比较,若有比它大的交换就把大的数赋值给max,一遍下来就可以找出max.代码很简单程序如下:#include<stdio.h>int main() { int max, i; char a[10] = { 2,8,4,6,7,0,5,3,1,9 }; max = a[0]; for (i = 0; i < 10...原创 2019-11-12 16:44:57 · 134 阅读 · 0 评论 -
给定两个整形变量的值,将两个值的内容进行交换。
问题很简单不做过多描述,加一个第三变量寄存一下即可.代码如下:#include<stdio.h>int main() { int a, b, c; a = 1; b = 2; printf("a=%d,b=%d\n", a, b); c = a; a = b; b = c; printf("交换后\n"); printf("a=%d,b=%d",a,b); r...原创 2019-11-12 16:20:23 · 98 阅读 · 0 评论 -
判断1000-2000年之中的闰年(c语言)
闰年是指能被4整除但不能被100整除的年份叫做闰年.因此这个代码实现只需要简单地加if判断语句,加上如上两个条件,在for循环下就可实现找出闰年,代码如下:#include <stdio.h>int main() { int x, y, z; for (x = 1000; x < 2001; x++) { if (x % 4 == 0 && x %...原创 2019-11-11 22:17:31 · 188 阅读 · 0 评论 -
输出乘法口诀表(c语言表达)
输出乘法口诀并不难,只需要定义三个变量x,y,z利用两个for循环即可,x*y=z;编程过程中发现难点在于怎么让乘法口诀自己排成表的形式,研究后发现只要当x=y是切换行就可以了,于是利用if语句即可解决这个问题,代码如下.程序:#include <stdio.h>int main() { int x, y, z; for (x = 1; x < 10; x++) { ...原创 2019-11-11 22:10:53 · 572 阅读 · 0 评论