函数——练习
来源:互联网 发布:大学生网络防诈骗 ppt 编辑:程序博客网 时间:2024/06/07 00:30
#include <stdio.h>void printstars(int m); //函数原型声明 void printchs(int a,char ch);int main(){ int n=6; //n控制输出行数 printstars(n); //n的值传递给printstars函数 return 0;}void printstars(int m) //函数定义,此时 m==n { int i,j; for(i=1;i<=m;i++) //从1到8依次增加行数 { for(j=1;j<=2*i-1;j++) //2*i-1控制 * 数目 { printf("*"); } printf("\n"); //输出一行 * 就换行 }}
运行结果
#include <stdio.h>void printchs(int a, char ch);int main(){ int i; int n=6; for(i=1;i<=5;++i) //循环指定行数 { printchs(n-i,' '); //空格由5减至0 printchs(2*i-1,'*'); // * 从1个到11个 //值的传递修改为'A'+i-1,既输出A到E。 printf("\n"); } return 0;}void printchs(int a, char ch){ int i; for(i=1; i<=a; ++i) { printf("%c", ch); }}
运行结果
分段函数求值
#include <stdio.h>double f(double x);int main(){ double x; printf("请输入x的值:"); scanf("%lf",&x); printf("解得:f(%.2f)=%.2f\n", x,f(x)); return 0;}double f(double x){ double y; if(x<0.3) { y=0; } if(x>=0.3 && x<=0.8) { y=(x-0.3)/0.5; } if(x>=0.8) { y=1; } return y;}
运行结果
求四个数最大公约数
#include <stdio.h>int gcd(int a,int b);int gcds(int , int ,int , int);int main()//实现四个数的最大公约数 { int x; int y; int x1; int y1; printf("请输入四个整数:"); scanf("%d %d %d %d",&x,&y,&x1,&y1); //printf("最大公约数为%d\n",gcd(x,y)); printf("四个数的最大公约数是%d\n", gcd(gcd(x,y),gcd(x1,y1))); //上面gcd函数递归调用自身 printf("四个数的~最大公约数是%d\n", gcds(x,y,x1,y1)); return 0;}int gcd(int a, int b){ int r=1,t;/* if(a<b) { t=a; //这个交换是多余的 a=b; b=t; } */ while(b>0) { r=a%b; a=b; b=r; } return a; }int gcds(int x, int y, int x1, int y1){ int a,b,c; a=gcd(x,y); b=gcd(x1,y1); c=gcd(a,b); return c;}
运行结果
请输出满足条件n=a!+b!+c!的所有三位数n,其中,a、b、c分别是n的百、十、个位数。要求用自定义函数实现求阶乘。
#include <stdio.h>long fac(int m);int main(){ int a,b,c; int sum=0,i; for(i=100;i<=999;++i) { a=i/100; b=i%100/10; c=i%10; sum=fac(a)+fac(b)+fac(c); if(sum==i) { printf("各位数的阶乘和等于n自身:%d\n",sum); break; } } printf("n各位数的阶乘和为:%d!+%d!+%d!=",a,b,c); printf("%d+%d+%d=%d",fac(a),fac(b),fac(c),sum); return 0; }long fac(int m){ int i,f=1; for(i=1;i<=m;i++) f*=i; return f;}
运行结果
求组合数
#include <stdio.h>long fac(int a);//求阶乘函数int main(){ int n,m,c; printf("请输入m,n的值:"); scanf("%d %d",&m,&n); c=fac(m)/fac(n)*fac(m-n); if(m>n) printf("n,m的组合数为%d", c); else printf("m不能小于n"); return 0;}long fac(int a){ int i; int f=1; for(i=1;i<=a;i++) f*=i; return f;}
运行结果
#include <stdio.h>int days(int y, int m, int d);int main(){ int year, month, day; printf("输入年 月 日:\n"); scanf("%d %d %d",&year, &month, &day); printf("这是该年的第 %d 天\n", days(year,month,day)); return 0;} int days(int y,int m, int d){ int i,sum=d; for(i=1; i<m;i++)//不能等于m switch(i) { case 2: sum+=28; break; case 1: case 3: case 5: case 7: case 8: case 10: case 12: sum+=31; break; default: sum+=30; break; } if( (y%4==0 && y%100!=0) || y%400==0 )//判断如果是闰年加1天 { sum++; } return sum; }
运行结果
编制一个函数reverse,返回给定数据的“反序数”,例如输入1234,输出4321。
#include <stdio.h>int reverse(int x);int main(){ int m,n; scanf("%d", &m); n=reverse(m); printf("%d\n", n); return 0;}int reverse(int x) { int r,i; r=0; while(x>0) { i=x%10; r=r*10+i; x=x/10; } return r;}
运行结果
编制isPalindrome(),用于判断参数是否是回文数——回文数
#include <stdio.h>int isPalindrome(int n);int main(){ int m; scanf("%d", &m); if(isPalindrome(m)) printf("%d是回文数!\n", m); else printf("%d不是回文数!\n", m); return 0;}int isPalindrome(int n){ int r,i,t,n1; r=0; n1=n; while(n>0) { i=n%10; r=r*10+i; n=n/10; } if(r==n1) t=1; else t=0; return t;}
运行结果
编制一个返回值为int型的函数isPrimer(),用于判断参数是否为素数
#include <stdio.h>int isPrimer(int n);int main(){ int m; printf("输入一个整数:"); scanf("%d",&m); if(isPrimer(m)) printf("%d是素数\n",m); else printf("%d不是素数\n",m); return 0;}int isPrimer(int n){ int t=1,i; for(i=2;i<9;i++) { if(n%i==0) { t=0; break; } } return t;}
运行结果
#include <stdio.h>int isPrimer(int n);int isPalindrome(int n);int reverse(int x); int main(){ int m; for(m=1;m<=50;m++) { if(isPrimer(m)) printf("素数:%d\n", m ); } for(m=1;m<=50;m++) { if(isPalindrome(m)) printf("回文数:%d\n", m ); } for(m=1;m<=50;m++) { if(isPrimer(m)==1 && isPalindrome(m)==1) { printf("%3d是素数也是回文数\n",m); } } for(m=1;m<=100;m++) { if(isPrimer(m)) { if(isPrimer(reverse(m))==1) printf("可逆素数:%3d 反序数:%d\n",m,reverse(m)); } } return 0;}int isPrimer(int n){ int t=1,i; for(i=2;i<n;i++) { if(n%i==0) { t=0; break; } } return t;}int isPalindrome(int n){ int r,i,t,n1; r=0; n1=n; while(n>0) { i=n%10; r=r*10+i; n=n/10; } if(r==n1) t=1; else t=0; return t;}int reverse(int x) { int r,i; r=0; while(x>0) { i=x%10; r=r*10+i; x=x/10; } return r;}
运行结果
0 0
- 函数——练习
- oracle笔记——存储函数练习
- 2016春季练习——母函数
- 练习20——函数和文件
- 练习35——分支和函数
- php强化练习(2)——函数
- 第三周练习 随机数函数应用于游戏——计算器
- 练习18——函数(function)定义
- 练习19——函数和变量类型
- <JAVA练习>02——函数(打印九九乘法表)
- Oracle练习——建表、查询、过程、函数的使用
- 171111—函数练习:梯形法求积分
- 函数练习
- 函数练习
- [第4天] 函数——函数的应用(练习02)
- 第[4天] 函数——函数的重载 overload(练习)
- 第4天] 函数——函数的应用(练习01)
- jQuery练习5——val()练习
- StreamUtils
- 数据挖掘-关联分析频繁模式挖掘Apriori、FP-Growth及Eclat算法的JAVA及C++实现
- TaskUtils
- 批处理
- C 运算符优先级
- 函数——练习
- 关于动网论坛、动力起航、自由动力、动易、动感购物、乔客、织梦CMS.
- Integer 比较 转载
- hadoop之测试KMeans(一):运行源码实例
- Bitmap算法
- android 添加阴影引导
- Java实体类的作用--资料
- jquery和javascript的区别(常用方法比较)
- 执行安装程序