1.求自然对数的底数 e=2.718281828…,e 的计算公式如下:
e=1+1/1!+1/2!+1/3!+…要求当最后一项的值小于10-10时结束。
#include <stdio.h>
int main()
{
double a=1,c=1;
int i=1;
while(1/c>1e-10)
{
a=a+1/c;
i++;
c=c*i;
}
printf("e=%.16f",a);
return 0;
}
2.输入20个有符号整数,统计正整数、零、负整数的个数。
#include <stdio.h>
int main()
{
int s[20];
int a=0,b=0,c=0,i,j;
for(i=0;i<=19;i++)
{
scanf("%d",&s[i]);
}
for(j=0;j<=19;j++)
{
if(s[j]<0)
{
a=a+1;
}
else if(s[j]==0)
{
b=b+1;
}
else
{
c=c+1;
}
}
printf("dayu0dezhengzhengshugeshu:%d\n",c);
printf("dengyu0dezhengzhengshugeshu:%d\n",b);
printf("xiaoyu0dezhengzhengshugeshu:%d\n",a);
return 0;
}
3.输入m个数,求其最大数、最小数和平均值。
#include <stdio.h>
int main()
{
int m,i,s[100];
int sum=0,max,min,a;
printf("please input a number'm':");
scanf("%d",&m);
printf("please input %d numbers:\n",m);
for(i=0;i<m;i++)
{
scanf("%d",&s[i]);
sum=sum+s[i];
}
a=sum/m;
max=s[0];
min=s[0];
for(i=0;i<m;i++)
{
if(s[i]>max)
{
max=s[i];
}
}
for(i=0;i<m;i++)
{
if(s[i]<min)
{
min=s[i];
}
}
printf("max=%d min=%d average=%d",max,min,a);
return 0;
}
4. 任意的整数,当从左向右读与从右向左读是相同的,且为素数时,称为
回文素数。求 1000 以内的所有回文素数。
#include <stdio.h>
int main()
{
int n,i,a;
printf("Palindrome primes uo to 1000:\n");
for(n=10;n<1000;n++)
{
for(i=2;i<n;i++)
{
a=1;
if(n%i==0)
{
a=0;
break;
}
}
if(a==1)
{
if(n/100==0)
{
if(n%10==n/10)
{
printf("%d ",n);
}
}
else
{
if(n/100==n%10)
{
printf("%d ",n);
}
}
}
}
return 0;
}
5.在100和1000之间,有多少个其数字之和等于9而且该数可被5整除的整
数?
#include <stdio.h>
int main()
{
int n,i,a,c,sum=0,d=0;
for(n=10;n<=1000;n++)
{
a=1;
if(n%5==0)
{
a=0;
}
if(a==0)
{
if(n/100==0)
{
if(n/10+n%10==9)
{
sum=sum+1;
printf("%d ",n);
}
}
else
{
c=n/100;
if(c+(n-100*c)/10+n%10==9)
{
d=d+1;
printf("%d ",n);
}
}
}
}
printf("\n");
printf("There are %d of these numbers",sum+d);
return 0;
}
6.一位同学问老师和老师夫人的年龄是多少,老师说:“我年龄的平方加
上我夫人的年龄恰好等于1053,而我夫人年龄的平方加上我的年龄等于873。”
试计算老师和其夫人的年龄。
#include <stdio.h>
int main()
{
int x,y;
for(x=1;x<=1000;x++)
{
for(y=1;y<=1000;y++)
{
if(x*x+y==1053)
{
if(y*y+x==873)
{
printf("husband's age:%d wife's age: %d",x,y);
}
}
}
}
return 0;
}
7.输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立
方和等于该数本身。例如,153是一水仙花数,因为153=1^3 +5^3 +3^3。
#include <stdio.h>
int main()
{
int i,a,b,c;
printf("narcissus number:");
for(i=100;i<1000;i++)
{
a=i/100;
b=(i-a*100)/10;
c=i%10;
if(a*a*a+b*b*b+c*c*c==i)
{
printf("%d ",i);
}
}
return 0;
}
*8.(选做题)一个球从100m高度自由落下,每次落地后反跳回原高度的
一半,再落下,再反弹。求它在第10次落地时,共经过多少米,第10次反弹多
高。
#include <stdio.h>
int main()
{
int i=1;
double a=100;
printf("the height of the rebound:");
while(i<=10)
{
a=a/2;
i++;
}
printf("%.10f",a);
return 0;
}
*9.(选做题)猴子吃桃问题。猴子第1天摘下若干个桃子,当即吃了一
半,还不过瘾,又多吃了一个。第2天又将剩下的桃子吃了一半,又多吃了一
个。以后每天都吃了前一天剩下的一半另加一个。到第10天早上想再吃时,只
剩一个桃子了。求第一天共摘了多少桃子。
#include <stdio.h>
int main()
{
int x,y,i=1;
printf("the number of peach:");
for(x=9;x>0;x--)
{
y=(i+1)*2;
i=y;
}
printf("%d",y);
return;
}
*10.(选做题)用二分法求下面方程在(-10,10)之间的根:2x^3-4x^2+3x-6=0。
#include <stdio.h>
int main()
{
float x0,x1,x2,a,b,c;
printf("x1,x2:");
do
{
scanf("%f,%f", &x1, &x2);
a=2*x1*x1*x1-4*x1*x1+3*x1-6;
b=2*x2*x2*x2-4*x2*x2+3*x2-6;
} while(a*b>0);
do
{
x0=(x1+x2)/2;
c=2*x0*x0*x0-4*x0*x0+3*x0-6;
if(a*c>0)
{
x1=x0;
a=c;
}
else
{
x2=x0;
b=c;
}
}while(fabs(c)>=1e-5);
printf("x=%f\n",x0);
return 0;
}