C程序设计第四版(谭浩强著)第五章循环结构设计习题代码
-
-
- 3.求两个数的 “最大公约数” 和 “最小公倍数”。
- 4.输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数
- 5.求Sn=a+aa+aaa+···+aa··a(n个a)之值,其中a是一个数字,n表示a位数。例如:2+22+222+2222+22222(此时n=5) n由键盘输入。
- 6. 20∑ (n=0)n!(即求1!+2!+3!+4!+···+20!)。
- 7. 求 ∑ k + ∑ k² + ∑ 1/k。
- 8.输出所有“水仙花数”,所谓“水仙花数”是指一个3位数,其各数字立方和等于该数本身。例如,153是一个水仙花数,因为153=1³+5³+3³。
- 9.一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1,2,3,而6=1+2+3,因此6是完数。编程找出1000以内的所有完数,并按下面格式输出其因子。
- 10.有这样一个分数序列 2/1,3/2,5/3,8/5,13/8,21/13,···求出这个数列的前20项之和。
- 11.一个球从100m高度自由落下, 每次落地后反弹回原高度的一半,再落下,再反弹,求他第10次落地时,共经过多少米,第10次反弹多高。
- 12.猴子吃桃问题。猴子第一天摘下若干桃子,当即吃了一半还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上再想吃时就剩下一个桃子了,求第1天共摘了多少个桃子。
- 13.用迭代法求出x=根号a。求平方根的迭代公式为Xn+1 = 1 / 2( Xn + a / Xn ),其中前后两次求出x的差的绝对值小于10的-5次方。
- 14.用牛顿迭代法求出下面方程在1.5附近的根2x³-4x²+3x-6=0
- 15.用二分法求2x3-4x2+3x-6=0在(-10,10)之间的根
- 16.输出图案
- 17.两个乒乓球队进行比赛,各出三人。甲队为A,B,C3人,乙队为X,Y,Z3人。已抽签决定比赛名单。有人向队员打听比赛的名单,A说他不和X比,C说他不和X,Z比,请编程找出3对赛手的名单。
-
3.求两个数的 “最大公约数” 和 “最小公倍数”。
#include<stdio.h>
int main()
{
int m,n,i,k;
scanf("%d %d",&m,&n);
if(m>n)//这里讨论m是否大于n也是为了减少循环时间,不讨论也行
{
for(k=n;k>0;k--)//倒着找时间用的少
{
if(m%k==0&&n%k==0)
{
i=k;//最大公约数
break;
}
}
}
else
{
for(k=m;k>0;k--)
{
if(m%k==0&&n%k==0)
{
i=k;
break;
}
}
}
printf("最大公约数:%d\n",i);
i=m*n/i;
printf("最小公倍数:%d\n",i);
return 0;
}
4.输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数
#include<stdio.h>
int main()
{
char c;
int letter=0,space=0,num=0,other=0;
while ((c=getchar())!='\n')
{
if((c>='A'&&c<='Z') || (c>='a'&&c<='z'))
{
letter++;
}
else if(c==' ')
{
space++;
}
else if(c>='0'&&c<='9')
{
num++;
}
else
{
other++;
}
}
printf("letter=%d,space=%d,num=%d,other=%d",letter,space,num,other);
return 0;
}
5.求Sn=a+aa+aaa+···+aa··a(n个a)之值,其中a是一个数字,n表示a位数。例如:2+22+222+2222+22222(此时n=5) n由键盘输入。
#include<stdio.h>
int main()
{
int sum=0,a,n,an=0;
scanf("%d %d",&n,&a);
for(n;n>0;n--)//循环次数
{
an=an*10+a;//求式子中每个数
sum=sum+an;//然后求一个加一个
}
printf("sum=%d",sum);
return 0;
}