c语言mod函数例子,C语言学习笔记(10个函数实例)

函数实例

/*如果一个正整数m的所有小于m的不同因子(包括1)加起来

正好等于m本身,那么称它为完全数。比如6=1+2+3。请编写一个判断

完全数的函数IsPerfect(),判断从键盘输入的整数是否是完全数。*/

#include

int main()

{

int n;

scanf("%d",&n);

IsPerfect(n);

return 0;

}

void IsPerfect(int m)

{

int i,s=0;

for (i=2;i

{

if(m%i==0)

{

s=s+i;

}

}

if (s+1==m)

return printf("%d is a perfect num",m);

else

return printf("%d is not a perfect num",m);

}

/*输入2 个正整数m 和n(1≤m,n≤1000),输出m~n之间的所有水仙花数

水仙花数是指各位数字的立方和等于其自身的数要求定义并调用

函数is(number)判断number的各位数字之立方和是否等于其自身*/

#include

#include

#include

int is(int number)

{

int ge,shi,bai;

ge=number%10;

shi=number/10%10;

bai=number/100;

if(ge*ge*ge+shi*shi*shi+bai*bai*bai==number)

return number;

else

return 0;

}

int main()

{

int m,n,i,t;

printf("Input m: ");

scanf("%d",&m);

printf("Input n: ");

scanf("%d",&n);

for (i=m;i<=n;i++)

{

t=is(i);

if(t!=0)

printf("%d\n",t);

}

return 0;

}

/*若将某一素数的各位数字的顺序颠倒后得到的数仍是素数,

则此素数称为可逆素数。编写一个判断某数是否可逆素数的函数,

在主函数中输入一个整数,再调用此函数进行判断*/

#include

#include

#include

int pan_su(int x)

{

int i,ge,shi,m,j;

for (i=2;i<=sqrt(x);i++)

{

if(x%i==0)

return 0;

}

if(i>sqrt(x))

return 1;

}

int ni(int x)

{

int y=0,a;

while(x/10!=0)

{

a=x%10;

y=y*10+a;

x=x/10;

}

return y*10+x;

}

int hu_su(int x)

{

int t;

if(pan_su(x))

{

t=ni(x);

if(t==0)

return 0;

else

return pan_su(t);

}

}

int main()

{

int a,t;

scanf("%d",&a);

t=hu_su(a);

if(t==1)

printf("yes");

else

printf("no");

return 0;

}

//设计一个函数MaxCommonFactor(),计算两个正整数的最大公约数

#include

int MaxCommonFactor(int m,int n)

{

int i;

if (m%n==0)

return n;

else

{

for (i=n-1;i>0;i--)

{

if (m%i==0&&n%i==0)

return i;

}

}

}

int main()

{

int n1,n2,num_factor,temp;

scanf("%d%d",&n1,&n2);

if(n1

{

temp=n1;

n1=n2;

n2=temp;

}

num_factor=MaxCommonFactor(n1,n2);

printf("%d\n",num_factor);

return 0;

}

//设计一个函数MinCommanMultiple(),计算两个正整数的最小公倍数

#include

int MinCommonMultiple(int m,int n)

{

int i;

if(m%n==0)

return m;

else

{

for(i=m+1;i>m;i++)

{

if(i%n==0&&i%m==0)

return i;

}

}

}

int main()

{

int n1,n2,num_multiple,temp;

scanf("%d%d",&n1,&n2);

if(n1

{

temp=n1;

n1=n2;

n2=temp;

}

num_multiple=MinCommonMultiple(n1,n2);

printf("%d\n",num_multiple);

return 0;

}

//递归函数求阶乘

#include

long Fact(int n)

{

if(n<0)

return 0;

else if(n==1||n==0)

return 1;

else

{

return Fact(n-1)*n;

}

}

int main()

{

int n;

scanf("%d",&n);

printf("%ld\n",Fact(n));

return 0;

}

/*递归求解:n个人,第一个人2岁,以后每一个人比

前一个人大2岁,求第n个人几岁?n值从键盘输入*/

#include

int age(int n)

{

if(n==1)

return 2;

else

return age(n-1)+2;

}

int main()

{

int n;

scanf("%d",&n);

printf("age(%d)=%d\n",n,age(n));

}

/*斐波纳契数列定义如下:第一个和第二个数字都是1,

而后续的每个数字是其前两个数字之和。例如,1, 1, 2, 3, 5, 8, 13,......,

写出斐波纳契数列的递归函数Fibonacci(),并编写驱动程序

输出斐波纳契数列第i个元素的值。*/

#include

#include

int Fibonacci(int x)

{

if(x==1||x==2)

return 1;

else

return Fibonacci(x-1)+Fibonacci(x-2);

}

int main()

{

int i;

scanf("%d",&i);

printf("%d",Fibonacci(i));

return 0;

}

/*Sum(int n)是用递归的方法计算*/

#include

int Sum(int n)

{

if(n==1)

return 1;

else

return Sum(n-1)+n;

}

int main()

{

int n;

scanf("%d",&n);

if(n<=0)

printf("data error\n");

else

printf("sum=%d\n",Sum(n));

return 0;

}

//计算输入数字的位数

#include

#include

int pan_wei(int x)

{

int i=0;

while (x/10!=0)

{

x=x/10;

i++;

}

return i=i+1;

}

int main()

{

int m,n;

scanf("%d",&n);

m=pan_wei(n);

printf("输入数字的位数是:%d",m);

return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值