1.求自然对数的底数 e=2.718281828…,e 的计算公式如下:
e=1+1/1!+1/2!+1/3!+…要求当最后一项的值小于10-10时结束。
#include
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
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:%dn",c);
printf("dengyu0dezhengzhengshugeshu:%dn",b);
printf("xiaoyu0dezhengzhengshugeshu:%dn",a);
return 0;
}
3.输入m个数,求其最大数、最小数和平均值。
#include
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 { scanf("%d",&s[i]); sum=sum+s[i]; } a=sum/m; max=s[0]; min=s[0]; for(i=0;i { if(s[i]>max) { max=s[i]; } } for(i=0;i { if(s[i] { min=s[i]; } } printf("max=%d min=%d average=%d",max,min,a); return 0; } 4. 任意的整数,当从左向右读与从右向左读是相同的,且为素数时,称为 回文素数。求 1000 以内的所有回文素数。 #include int main() { int n,i,a; printf("Palindrome primes uo to 1000:n"); for(n=10;n<1000;n++) { for(i=2;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 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 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 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 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 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 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=%fn",x0); return 0; }



