1:
//程序功能:从键盘上输入一个正整数n,求s=1 1/2! .... 1/n!的值(保留4位小数),要求:
// 定义并调用函数fact(n)计算n的阶乘。
//提 示:除在指定位置添加语句之外,请不要改动程序中的其他内容。
#include
int main(void)
{
int i,n;
double fact(int n);
double item,sum;
printf("输入一个正整数:");
scanf("%d",&n);
sum = 0;
for(i=1; i<=n; i )
{
item=1/fact(i);
sum =item;
}
printf("1 1/2! ... 1/%d!=%0.4f\n",n,sum);
return 0;
}
double fact(int n) //定义求n!的函数
{
double product;
product = 1;
int j;
for(j=1; j<=n; j )
product*=j;
return product;
}
2:
//程序功能:输入一个正整数n和一个实数x,按给定公式求cos(x)的近似值(保留4位小数)。要求:
// 定义并调用power(x,n)计算幂函数,定义并调用函数fact(n)计算n!。
//提 示:除在指定位置添加语句之外,请不要改动程序中的其他内容。
#include
int main(void)
{
int i,n,flag;
double x,item,sum;
double fact(int n);
double power(double x,int n);
printf("输入一个正整数n和一个实数x:");
scanf("%d%lf",&n,&x);
flag = 1;
sum = 0;
for(i=1; i<=n; i )
{
item = power(x,i)/fact(i);
sum =item;
flag = -flag;
}
printf("cos(x)的近似值=%0.4f\n",sum);
return 0;
}
double fact(int n) //定义阶乘函数
{
double product;
int i;
product = 1;
for(i=1; i<=n; i )
{
product*=i;
i ;
}
return product;
}
double power(double x,int n)
{
double pow;
int i;
pow = 1;
for(i=1; i<=n; i )
{
pow*=x;
i ;
}
return pow;
}
3:
//程序功能:输入两个正整数m和n,求m和n的最大公约数。
// 要求:定义并调用函数gys(m,n)求m和n的最大公约数。
//提 示:除在指定位置添加语句之外,请不要改动程序中的其他内容。
#include
int main(void)
{
int m,n,j;
int gys(int m,int n);
printf("输入两个正整数m和n:");
scanf("%d%d",&m,&n);
j = gys(m,n);
printf("%d与%d的最大公约数是%d\n",m,n,j);
return 0;
}
int gys(int m,int n) //定义求m和n的最大公约数函数
{
int j;
int a, b, c;
if(m>n)
c = n;
else
c=m;
for(j=c; j>0; j--)
{
a = m%j;
b = n%j;
if(a==0 && b==0)
break;
}
return j;
}
4:
//程序功能:输入两个正整数m和n,求m和n的最小公倍数。
// 要求:定义并调用函数gbs(m,n)求m和n的最小公倍数。
//提 示:除在指定位置添加语句之外,请不要改动程序中的其他内容。
#include
int main(void)
{
int m,n,j;
int gbs(int m,int n);
printf("输入两个正整数m和n:");
scanf("%d%d",&m,&n);
j = gbs(m,n);
printf("%d与%d的最小公倍数是%d\n",m,n,j);
return 0;
}
int gbs(int m,int n) //定义求m和n的最小公倍数函数
{
int temp,j,i;
if(m>n)
temp = n;
else
temp = m;
for(i=temp; i>0; i--)
{
if(m%i==0 && n%i==0)
break;
}
j = m*n/i;
return j;
}
5:
//程序功能:输入一个正整数n,如果它是素数,输出"YES",否则,输出"NO"。
// 要求:要求定义并调用函数prime(n)判断n是否为素数。
//提 示:除在指定位置添加语句之外,请不要改动程序中的其他内容。
#include
int main(void)
{
int n,flag;
int prime(int n);
printf("输入一个正整数n:");
scanf("%d",&n);
flag = prime(n);
if(flag==1)printf("YES\n");
else printf("NO\n");
return 0;
}
int prime(int n) //定义判定n是否素数的函数
{
int i,flag;
for(i=2; i
{
flag = n%i;
if(flag==0)
break;
}
return flag;
}
6:
//程序功能:输入两个正整数m和n(1<=m<=n<=500),统计并输出m到n之间的素数的个数以及这些素数的和。
// 要求:要求定义并调用函数prime(n)判断n是否为素数。
//提 示:除在指定位置添加语句之外,请不要改动程序中的其他内容。
#include "stdio.h"
void main()
{
int i,m,n;
int flag,count,sum;
int prime(int n);
printf("输入两个正整数m和n(1<=m<=n<=500):");
scanf("%d%d",&m,&n);
for(count=0,sum=0,i=m;i<=n;i )
{
flag=prime(i);
if(flag==1)
{
count ;
sum =i;
}
}
printf("%d到%d之间的素数个数=%d,素数和=%d\n",m,n,count,sum);
}
int prime(int n) //定义判定n是否素数的函数
{
int i,flag;
if(n==1)flag=0;
else flag=1;
for(i=2;i<=n/2;i )
if(n%i==0){flag=0;break;}
return flag;
}
7:
//程序功能:输入一个长整数m和一个数字d,统计并输出m中包含数字d的个数。
//要 求:定义并调用函数countdigit(m,d),统计整数m中包含数字d的个数。
//提 示:除在指定位置添加语句之外,请不要改动程序中的其他内容。
#include
int main(void)
{
int count,d;
long m;
int ck(long m, int d);
printf("输入一个长整数m和一个数字d: ");
scanf("%ld%d",&m,&d);
count = ck(m,d);
printf("%ld中包含数字%d的个数%d\n",m,d,count);
return 0;
}
int ck(long m, int d)
{
int digit,count;
count = 0;
while(m>0)
{
digit = m;
m/=10;
if(digit == d)
count ;
}
return count;
}
8:
//程序功能:输入两个正整数m和n(1<=m<=n<=1000),输出m到n之间所有满足各位数字的立方和
// 等于它本身的数, 并统计这些数的个数与总和。
//要 求:定义并调用函数is(number),判断number的各位数字之立方和是否等于它本身。
//提 示:除在指定位置添加语句之外,请不要改动程序中的其他内容。
#include "stdio.h"
void main()
{
int i, m, n;
int count,sum;
int is(int number);
printf("输入两个整数m和n: ");
scanf("%d%d", &m, &n);
int t;
if(m>n)
{
t = m;
m = n;
n = t;
}
count = 0;
sum = 0;
for(i=m; i<=n; i )
if(is(i)==1)
{
count ;
sum =i;
}
printf("\n%d到%d间满足条件的数的个数等于%d,累加和等于%d\n",m,n,count,sum);
}
int is(int number) //定义is(int number)函数
{
int temp,gw,result,sum;
sum = 0;
result = number;
while(number>0)
{
gw = number;
temp*=gw;
sum =temp;
number/=10;
if(sum == result)
result = 1;
else
result = 0;
}
return result;
}
9:
#include
int fib(int n);
int main(void)
{
int i, m, n;
printf("输入两个正数m和n的值(1<=m<=n<=10000):");
scanf("%d %d", &m, &n);
printf("第%d项第%d项的Fibonacci数是:\n");
for(i=m; i<=n; i )
printf("%d ", fib(i));
printf("\n");
return 0;
}
int fib(int n)
{
int fib;
int j;
int a[10000];
a[0]=1, a[1]=1;
for(j=2; j<=10000; j )
a[j] = a[j-1] a[j-2];
fib = a[n-1];
return fib;
}
10:
#include
int factorsum(int i);
int main(void)
{
int i;
int m, n;
printf("输入两个正整数m和n(1<=m<=n<=10000):");
scanf("%d %d", &m, &n);
printf("%d-%d之间所有的完数为:\n", m, n);
for(i=1; i<=n; i )
if(factorsum(i)==i)
printf("%d ",i);
printf("\n");
return 0;
}
int factorsum(int i)
{
int j, sum = 0;
for(j=1; j<=i/2; j )
if(i%j==0)
sum =j;
return sum;
}
11:
#include
int dectobin(int x);
int main(void)
{
int m;
int n;
printf("输入一个正整数n:");
scanf("%d", &n);
m = dectobin(n);
printf("十进制数%d的二进制数为:%d\n", n, m);
return 0;
}
int dectobin(int x)
{
int sum = 0;
int a[64];
int i, j;
for(i=0; ; i )
{
a[i]=x%2;
x/=2;
if(x<1)
break;
}
for(j=i; j>=0; j--)
sum = sum*10 a[j];
return sum;
}
小泥巴 2014/4/3 星期四 16:11