注:本文所有程序均为笔者自己编写,仅供交流学习使用,欢迎一切纠错与指正。
一、编写函数计算以下函数的值。
#include <stdio.h>
float func(float x)
{
float y;
if(x<2)
{
y = 2.5 - x;
}
else if(x<4)
{
y = 2 - 1.5*(x-3)*(x-3);
}
else if(x>=4)
{
y = x*0.5-1.5;
}
return y;
}
int main()
{
float a,b;
scanf("%f",&a);
b = func(a);
printf("%f",b);
return 0;
}
二、编写函数,输出1000以内的所有完数及因子。所谓完数是指一个整数的值等于它的因子之和,例如6的因子是1、2、3,而6=1+2+3,故6是一个完数。
#include <stdio.h>
void func()
{
int i,sum;
for(i=1;i<=1000;i++)
{
sum = 0;
for(int n=i-1;n>0;n--)
{
if(i%n==0)
{
sum += n;
}
}
if(sum == i)
{
for(int j=1;j<=i;j++)
{
if(i%j==0)
{
printf("%d\t",j);
}
}
printf("%d\n",i);
}
}
}
int main()
{
func();
return 0;
}
三、输出200~300之间的所有素数。用函数判断一个数是否是素数。
#include <stdio.h>
void func(int x)
{
int i;
for(i=x-1;i>1;i--)
{
if(x%i==0)
{
printf("%d不是素数\n",x);
break;
}
}
if(i == 1)
{
printf("%d是素数\n",x);
}
}
int main()
{
int k,s;
for(int n=200;n<301;n++)
{
for(k=n-1;k>1;k--)
{
if(n%k == 0)
{
break;
}
}
if(k == 1)
{
printf("%d\n",n);
}
}
scanf("%d",&s);
func(s);
return 0;
}
四、编写函数,计算排列数
#include <stdio.h>
int func(int m,int n)
{
int a = 1,b = 1,c;
c = m-n;
for(c;c>0;c--)
{
a *= c;
}
for(n;n>1;n--)
{
b *= n;
}
return b/a;
}
int main()
{
int x,m,n;
printf("请输入m、n的值:");
scanf("%d%d",&m,&n);
x = func(m,n);
printf("%d",x);
return 0;
}
五、编写函数,求以下数列前n项和。
#include <stdio.h>
float func(int n)
{
float a = 1,b = 2,sum = 0;
for(n;n>0;n--)
{
sum += a/b;
a += 2;
b += 2;
}
return sum;
}
int main()
{
int n;
float k;
scanf("%d",&n);
k = func(n);
printf("%f",k);
}