C语言初级入门练习
John_Wang7
千里之行,始于足下。
展开
-
设计一个函数,将整数的每一位上的数累加
设计一个函数,将整数的每一位上的数累加#includeint total(int n){ int t=0; while(n!=0) { t=t+n%10; n=n/10; } return t;}int main(){ int x; printf("输入一个整数:\n"); scanf("%d",&x); x=total(x); printf("%d\n原创 2017-03-13 18:50:55 · 3200 阅读 · 0 评论 -
将之前程序中的函数reverse改为无返回值的函数
将之前程序中的函数reverse改为无返回值的函数一个无返回值的函数#includevoid reverse(int n){ int m=0; while(n!=0) { m=m*10+n%10; n=n/10; } printf("%d",m); return; } int main() { int x; printf("请输入一个整数:\n");原创 2017-03-13 18:55:40 · 660 阅读 · 0 评论 -
将一个整数按位逆置后按位累加
将一个整数按位逆置后按位累加#includeint tatol(int n);int reverse(int n);int main(){ int x; 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 · 570 阅读 · 0 评论 -
检查自变量的生命周期和作用域
检查自变量的生命周期和作用域#includeint total(int n);int reverse(int n);int main(){ int x=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 · 402 阅读 · 0 评论 -
从键盘连续输入一组数,对每一个数按位求和,输出和数最大者
从键盘连续输入一组数,对每一个数按位求和,输出和数最大者在total函数中定义一个静态局部便变量,每一次记录当前和数和上一次和数的较大者#includeint total(int n){ int t=0; static int bigger; //静态局部变量默认初始值是0 while(n!=0) { t=t+n%10; n=n/10; }原创 2017-03-13 23:12:21 · 1258 阅读 · 0 评论 -
利用外部变量将一个数按位累加后逆序输出
利用外部变量将一个数按位累加后逆序输出#includeint total();int reverse();int n; //外部局部变量,默认初始值为0 int main(){ scanf("%d",&n); //从键盘给外部变量赋值 n=total(); //对外部变量按位累加 printf("%d\n",n); n=reverse(); //将累加的结果逆序原创 2017-03-13 23:15:52 · 297 阅读 · 0 评论 -
阶乘累加
阶乘累加#includeint fact_and_sum(int n);int main(){ int x; scanf("%d",&x); printf("%d\n",fact_and_sum(x)); return 0; } int fact_and_sum(int n) { int i,j,fact,sum=0; for(i=1;i<=n;i++) {原创 2017-03-13 23:17:44 · 1145 阅读 · 0 评论 -
求π的近似值
求π的近似值按照格里高利公式求π的近似值。格里高利公式为π/4=1-1/3+1/5-1/7+....每一项的特点是:分子均为1,分母的绝对值依次为2*i-1(i=1,2,3,4,5...),奇数项为正,偶数项为父。逐项累加,直到累加项的绝对值小于1e-4。#include#include //喊fabs函数声明 double pi(double error); //按照格里高原创 2017-03-13 23:19:22 · 4136 阅读 · 0 评论 -
用辗转相除法求最大公约数
求最大公约数用辗转相除法求最大公约数步骤:1,将两个正整数分别作为被除数(dividend)和除数(divider)。2.将被除数除以除数,得到余数(remainder)3.若余数不为0,则除数转为被除数,余数转为除数,继续第二步4.若余数为0,则结束循环,使余数为0的除数就是最大公约数#includeint gcd(int dividend,int divider)原创 2017-03-13 23:29:02 · 2317 阅读 · 0 评论 -
判断质数
判断质数一个整数,若值为0或1,则不是质数,如果大于1且不能被小于它的任一整数整除,就是质数,否则不是质数。其实可以缩小检验的范围,因为一个整数,如果不能被2和这个整数的平方根之见的任何一个整数整除,就不能被小于这个数的任意一个整数整除。#include#include //包含平方根函数sqrt的原型 int isprime(int m);int main(){ int原创 2017-03-15 22:32:19 · 514 阅读 · 0 评论 -
将一个十进制数n转化为B进制数。
将一个十进制数n转化为B进制数。步骤:重复执行以下步骤(1)和步骤(2),知道n为0.(1)取B进制数的个位:求雨运算n%B,把结果存入数组。(2)讲B进制数降一阶:整除运算n=n/B。(3)从后往前输出数组元素。如果数组元素小于10,照原样输出;如果数组元素大于等于10,输出其相应的符号,例如,10输出a,11输出b,......#includevoid number_sy原创 2017-03-15 22:39:36 · 5120 阅读 · 0 评论 -
将整数按位逆置的算法设计为一个函数,函数名为reverse
将整数按位逆置的算法设计为一个函数,函数名为reverse。#includeint reverse(int n) //用函数将一个整数位逆置{ int m=0; while(n!=0) { m=m*10+n%10; n=n/10; } return m; } int main() { int x; printf("请输入一个整数:\n"); sca原创 2017-03-03 20:10:22 · 1611 阅读 · 0 评论 -
从键盘输入一个大于9999的整数,然后把每个数位上的数累加
从键盘输入一个大于9999的整数,然后把每个数位上的数累加#includeint main(){ int n,total=0; while(1) { printf("请输入一个整数(>9999):\n"); scanf("%d",&n); if(n<9999) continue; else break; } while(n!=0) { total+=(n原创 2017-03-03 20:06:55 · 819 阅读 · 0 评论 -
将一个三位整数按位逆序输出
将一个三位整数按位逆序输出。基本思想:利用整型的基本操作%和/,可以分别求得个位、十位、百位等更高的位,然后依次输出。以345为例,345%10得到个位5,(345/10)%10得到十位4,(345/100)%10得到百位3.#includeint main(){ int n=345; //标准输入输出函数库 printf("%d",n%10); //输出5 printf(原创 2017-03-03 00:18:37 · 8027 阅读 · 0 评论 -
用while-do语句逆序输出一个整数
用while-do语句逆序输出一个整数#includeint main(){ int n; n=3456; while(n!=0) //只要n不等于0 { printf("%d",n%10); //输出个位 n=n/10; } printf("\n"); return 0; } 结果截图:原创 2017-03-03 00:27:07 · 6797 阅读 · 0 评论 -
用for循环逆序输出一个整数
用for循环逆序输出一个整数#includeint main(){ int n; for(n=3456;n!=0;n=n/10) { printf("%d",n%10); } printf("\n"); return 0; }原创 2017-03-03 00:35:54 · 7059 阅读 · 1 评论 -
从键盘输入一个整数,然后逆序输出
从键盘输入一个整数,然后逆序输出#includeint main(){ int n; printf("请输入一个整数:\n"); //提示从:键盘输入一个整数 scanf("%d",&n); // 从键盘输入一个整数 while(n!=0) //只要n不是0 { printf("%d",n%10); n=n/10; } printf("\n"原创 2017-03-03 00:53:38 · 33427 阅读 · 6 评论 -
先存储逆序后的整数再输出
先存储逆序后的整数再输出(缺点:需要多次调用printf函数,调用函数是需要付出额外的时间和空间的)#includeint main(){ int n; int m=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 · 387 阅读 · 0 评论 -
把一个整数每个数位上的数累加,然后输出
把一个整数每个数位上的数累加,然后输出#includeint main(){ int n; int m=0; printf("请输入一个整数"); scanf("%d",&n); while(n!=0) { m=m+(n%10); n=n/10; } printf("%d\n",m); return 0; }原创 2017-03-03 12:21:30 · 2087 阅读 · 0 评论 -
把一个整数中数位上的偶数相加,奇数加1后累加,然后输出
把一个整数中数位上的偶数相加,奇数加1后累加,然后输出#includeint main(){ int n,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 · 1506 阅读 · 0 评论 -
用多个if平衡语句实现分制转换
用多个if平衡语句实现分制转换#includeint main(){ int grades; 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 · 452 阅读 · 0 评论 -
用多级嵌套if-else语句实现分制转换
用多级嵌套if-else语句实现分制转换#includeint main(){ int grades; printf("请输入分数:\n"); scanf("%d",&grades); if(grades>=90) printf("A\n"); else if(grades>=80) printf("B\n"); else if(grades>=70) prin原创 2017-03-03 19:01:49 · 1182 阅读 · 0 评论 -
利用多分支选择语句把百分之转换成4分制
利用多分支选择语句把百分之转换成4分制#includeint main(){ float grades; printf("请输入分数:\n"); scanf("%f",&grades); switch((int)grades/10) { case 10: case 9: printf("A\n");break; case 8: printf("B\n");原创 2017-03-03 19:06:47 · 1735 阅读 · 0 评论 -
无参宏指令
程序中有时反复出现一些长数值的常量,容易写错,希望能用符号来表示,例如,用PI表示3.1415926。有时希望沿用一些习惯或者直观的表达式,例如,AND(逻辑与)、OR(逻辑或)。利用宏定义可以满足这些要求。无参宏指令的定义格式为#define 宏名 宏体其中宏名是符号常量,也称为宏常量,通常由大写字母组成,他们出现在程序中,通过预处理,宏定义被宏体替换。宏定义不是语句,最后不能加分号。原创 2017-03-16 14:43:52 · 432 阅读 · 0 评论