5 John_Wang7

尚未进行身份认证

千里之行,始于足下。

等级
博文 25
排名 15w+

无参宏指令

程序中有时反复出现一些长数值的常量,容易写错,希望能用符号来表示,例如,用PI表示3.1415926。有时希望沿用一些习惯或者直观的表达式,例如,AND(逻辑与)、OR(逻辑或)。利用宏定义可以满足这些要求。无参宏指令的定义格式为#define宏名宏体其中宏名是符号常量,也称为宏常量,通常由大写字母组成,他们出现在程序中,通过预处理,宏定义被宏体替换。宏定义不是语句,最后不能加分号。

2017-03-16 14:43:52

将一个十进制数n转化为B进制数。

将一个十进制数n转化为B进制数。步骤:重复执行以下步骤(1)和步骤(2),知道n为0.(1)取B进制数的个位:求雨运算n%B,把结果存入数组。(2)讲B进制数降一阶:整除运算n=n/B。(3)从后往前输出数组元素。如果数组元素小于10,照原样输出;如果数组元素大于等于10,输出其相应的符号,例如,10输出a,11输出b,......#includevoidnumber_sy

2017-03-15 22:39:36

判断质数

判断质数一个整数,若值为0或1,则不是质数,如果大于1且不能被小于它的任一整数整除,就是质数,否则不是质数。其实可以缩小检验的范围,因为一个整数,如果不能被2和这个整数的平方根之见的任何一个整数整除,就不能被小于这个数的任意一个整数整除。#include#include//包含平方根函数sqrt的原型intisprime(intm);intmain(){ int

2017-03-15 22:32:19

用辗转相除法求最大公约数

求最大公约数用辗转相除法求最大公约数步骤:1,将两个正整数分别作为被除数(dividend)和除数(divider)。2.将被除数除以除数,得到余数(remainder)3.若余数不为0,则除数转为被除数,余数转为除数,继续第二步4.若余数为0,则结束循环,使余数为0的除数就是最大公约数#includeintgcd(intdividend,intdivider)

2017-03-13 23:29:02

求π的近似值

求π的近似值按照格里高利公式求π的近似值。格里高利公式为π/4=1-1/3+1/5-1/7+....每一项的特点是:分子均为1,分母的绝对值依次为2*i-1(i=1,2,3,4,5...),奇数项为正,偶数项为父。逐项累加,直到累加项的绝对值小于1e-4。#include#include //喊fabs函数声明doublepi(doubleerror); //按照格里高

2017-03-13 23:19:22

阶乘累加

阶乘累加#includeintfact_and_sum(intn);intmain(){ intx; scanf("%d",&x); printf("%d\n",fact_and_sum(x)); return0;}intfact_and_sum(intn){ inti,j,fact,sum=0; for(i=1;i<=n;i++) {

2017-03-13 23:17:44

利用外部变量将一个数按位累加后逆序输出

利用外部变量将一个数按位累加后逆序输出#includeinttotal();intreverse();intn; //外部局部变量,默认初始值为0intmain(){ scanf("%d",&n); //从键盘给外部变量赋值 n=total(); //对外部变量按位累加 printf("%d\n",n); n=reverse(); //将累加的结果逆序

2017-03-13 23:15:52

从键盘连续输入一组数,对每一个数按位求和,输出和数最大者

从键盘连续输入一组数,对每一个数按位求和,输出和数最大者在total函数中定义一个静态局部便变量,每一次记录当前和数和上一次和数的较大者#includeinttotal(intn){ intt=0; staticintbigger;//静态局部变量默认初始值是0 while(n!=0) { t=t+n%10; n=n/10; }

2017-03-13 23:12:21

检查自变量的生命周期和作用域

检查自变量的生命周期和作用域#includeinttotal(intn);intreverse(intn);intmain(){ intx=123; printf("main:&x=%x,x=%d\n",&x,x);//输出x的地址和值 total(x+1); printf("main:&x=%x,x=%d\n",&x,x);//输出x的地址

2017-03-13 23:08:54

将一个整数按位逆置后按位累加

将一个整数按位逆置后按位累加#includeinttatol(intn);intreverse(intn);intmain(){ intx; printf("请输入一个整数:\n"); scanf("%d",&x); x=reverse(x); printf("%d\n",x); x=tatol(x); printf("%d\n",x); return

2017-03-13 19:17:31

将之前程序中的函数reverse改为无返回值的函数

将之前程序中的函数reverse改为无返回值的函数一个无返回值的函数#includevoidreverse(intn){ intm=0; while(n!=0) { m=m*10+n%10; n=n/10; } printf("%d",m); return;}intmain(){ intx; printf("请输入一个整数:\n");

2017-03-13 18:55:40

设计一个函数,将整数的每一位上的数累加

设计一个函数,将整数的每一位上的数累加#includeinttotal(intn){ intt=0; while(n!=0) { t=t+n%10; n=n/10; } returnt;}intmain(){ intx; printf("输入一个整数:\n"); scanf("%d",&x); x=total(x); printf("%d\n

2017-03-13 18:50:55

将整数按位逆置的算法设计为一个函数,函数名为reverse

将整数按位逆置的算法设计为一个函数,函数名为reverse。#includeintreverse(intn) //用函数将一个整数位逆置{ intm=0; while(n!=0) { m=m*10+n%10; n=n/10; } returnm;}intmain(){ intx; printf("请输入一个整数:\n"); sca

2017-03-03 20:10:22

从键盘输入一个大于9999的整数,然后把每个数位上的数累加

从键盘输入一个大于9999的整数,然后把每个数位上的数累加#includeintmain(){ intn,total=0; while(1) { printf("请输入一个整数(>9999):\n"); scanf("%d",&n); if(n<9999) continue; elsebreak; } while(n!=0) { total+=(n

2017-03-03 20:06:55

利用多分支选择语句把百分之转换成4分制

利用多分支选择语句把百分之转换成4分制#includeintmain(){ floatgrades; printf("请输入分数:\n"); scanf("%f",&grades); switch((int)grades/10) { case10: case9: printf("A\n");break; case8: printf("B\n");

2017-03-03 19:06:47

用多级嵌套if-else语句实现分制转换

用多级嵌套if-else语句实现分制转换#includeintmain(){ intgrades; printf("请输入分数:\n"); scanf("%d",&grades); if(grades>=90) printf("A\n"); elseif(grades>=80) printf("B\n"); elseif(grades>=70) prin

2017-03-03 19:01:49

用多个if平衡语句实现分制转换

用多个if平衡语句实现分制转换#includeintmain(){ intgrades; printf("请输入分数:\n"); scanf("%d",&grades); if(grades>=90) printf("A\n"); if(grades=80) printf("B\n"); if(grades=70) printf("C\n"); if(grad

2017-03-03 12:34:30

把一个整数中数位上的偶数相加,奇数加1后累加,然后输出

把一个整数中数位上的偶数相加,奇数加1后累加,然后输出#includeintmain(){ intn,digit,total=0; printf("请输入一个整数:\n"); scanf("%d",&n); while(n!=0) { digit=n%10; if(digit%2==0) total=total+digit; else total=

2017-03-03 12:31:10

把一个整数每个数位上的数累加,然后输出

把一个整数每个数位上的数累加,然后输出#includeintmain(){ intn; intm=0; printf("请输入一个整数"); scanf("%d",&n); while(n!=0) { m=m+(n%10); n=n/10; } printf("%d\n",m); return0;}

2017-03-03 12:21:30

先存储逆序后的整数再输出

先存储逆序后的整数再输出(缺点:需要多次调用printf函数,调用函数是需要付出额外的时间和空间的)#includeintmain(){ intn; intm=0; printf("请输入一个整数:\n"); scanf("%d",&n); while(n!=0) { m=m*10+n%10; n=n/10; } printf("%d\n",m); retu

2017-03-03 12:16:22
奖章
    暂无奖章