c语言第六章课后题答案179,C语言程序设计三版_谭浩强主编第6—8章课后习题答案.doc...

C语言程序设计三版_谭浩强主编第6—8章课后习题答案

C语言第6—8章课后习题答案

第六章 循环语句

6.1输入两个正数,求最大公约数和最小公倍数.

#include

void main()

{ int a,b,num1,num2,temp;

printf("请输入两个正整数:\n");

scanf("%d,%d",&num1,&num2);

if(num1

{

temp=num1;

num1=num2;

num2=temp;

}

a=num1,b=num2;

while(b!=0)

{

temp=a%b;

a=b;

b=temp;

}

printf("它们的最大公约数为:%d\n",a);

printf("它们的最小公倍数为:%d\n",num1*num2/a);

}

编译已通过

6.2输入一行字符,分别统计出其中英文字母,空格,数字和其它字符的个数.

解:

#include

void main()

{

char c;

int letters=0,space=0,degit=0,other=0;

printf("请输入一行字符:\n");

while((c=getchar())!='\n')

{

if(c>='a'&&c<='z' || c>'A'&&c<='Z')

letters++;

else if(c==' ')

space++;

else if(c>='0'&&c<='9')

digit++;

else

other++;

}

printf("其中:字母数=%d 空格数=%d 数字数=%d 其它字符数=%d\n",letters,space, digit,other);

}

6.3求s(n)=a+aa+aaa+…+aa…a之值,其中a是一个数字,n表示a的位数。

解:

void main()

{

int a,n,count=1,sn=0,tn=0;

printf("请输入a和n的值:\n");

scanf("%d,%d",&a,&n);

printf("a=%d n=%d \n",a,n);

while(count<=n)

{

tn=tn+a;

sn=sn+tn;

a=a*10;

++count;

}

printf("a+aa+aaa+…=%d\n",sn);

}

6.4 求 (即1+2!+3!+4!+…+20!)

void main()

{

float n,s=0,t=1;

for(n=1;n<=20;n++)

{

t=t*n;

s=s+t;

}

printf("1!+2!+…+20!=%e\n",s);

}

阶乘利用递归,再求和:

#include

using namespace std;

long Func(int n)

{

if(1==n)

return n;

if(n>1)

return n*Func(n-1);

}

main()

{

long s=0;

int i=1;

while (i<=6)

{

s=s+Func(i);

i++;

}

cout<

}

6.5 求 。

void main()

{

int k,N1=100,N2=50,N3=10;

float s1=0.0,s2=0.0,s3=0.0;

for(k=1;k<=N1;k++)/*计算1到100的和*/

{

s1=s1+k;

}

for(k=1;k<=N2;k++)/*计算1到50各数平方和*/

{

s2=s2+k*k;

}

for(k=1;k<=N3;k++) /*计算1到10各数倒数之和*/

{

s3=s3+1.0/k;

}

printf("总和=%8.2f\n",s1+s2+s3);

}

已通过

int main()

{

int k=1,i=11,j=51;

float s=0.0;

while(k<=10)

{

s=s+k+k*k+1.0/k;

while(k==10 && i<=50)

{

s=s+i+i*i;

while(i=50 && j<=100)

{

s=s+j;

j++;

}

i++;

}

k++;

}}

6.6所谓“水仙开数”是指一个3位数,其个位数字立方和等于该数本身。

#include

void main()

{

int i,j,k,n;

printf(" 水仙花数是:\n");

for(n=100;n<1000;n++)

{

i=n/100;

j=n/10-i*10;

k=n%10;

if(i*100+j*10+k==i*i*i+j*

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值