⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 练习.txt

📁 钱能主编 C++程序设计教程(第一版) 该书习题的答案代码
💻 TXT
字号:
4.1
version1:(while or do while)
#include <iostream.h>
#include <math.h>
#include <iomanip.h>

void main()
{
	int x,n=1;
	double s=1.0,tv;
	cout<<"please input the x: "<<endl;
	cin>>x;

	tv=x;  //initialize

	do
	{
		s+=tv;
		n++;
		tv*=(-1.0)*x/n;
	}while(fabs(tv)>1e-8);

	cout<<"the value of expression is : "
		<<setiosflags(ios::fixed)
		<<setprecision(8)
		<<setw(15)<<s<<endl;
}


version2:(for)
关键部分不同,其余一样。
	for(int n=1;fabs(tv)>1e-8;)
	{
	    s+=tv;
		n++;
		tv*=(-1.0)*x/n;
	}

4.2
#include <iostream.h>
#include <math.h>
#include <iomanip.h>

long int fac(int n);

void main()
{
	int s=0,n=1;
	for(;n<=15;n++)
	{
		s+=fac(n);
		cout<<n<<endl;
	}
	
	cout<<endl
		<<"s = "<<s<<endl;
}

long int fac(int n)
{
	int tmp=1;
	for(int i=1;i<=n;i++)
		tmp*=i;
	return tmp;
}

4.3
#include <iostream.h>
#include <math.h>
#include <iomanip.h>

long int fac(int n);

void main()
{
	int a,b,c,n=100;
	double tmp;

	cout<<"水仙花数如下:"<<endl;

	for(;n<1000;n++)
	{
		a=n/100;
		b=(n%100)/10;
		c=n%10;
		tmp=pow(a,3)+pow(b,3)+pow(c,3);
		if(n==tmp)
			cout<<n<<endl;
	}

}

4.4
#include <iostream.h>
#include <math.h>

void main()
{
	int tmp=0;
	cout<<"1000以内完数如下:"<<endl;

	for(int i=2;i<1000;i++)
	{
		for(int j=1;j<i;j++)
		{
			if(i%j==0)
				tmp+=j;
		}
		
		if(i==tmp)
		{
			cout<<i<<endl;
			tmp=0;
		}
		else
			tmp=0;
	}
}

4.5
#include <iostream.h>

void main()
{
	double s=100,tmp=100;
	int n=2;

	for(;n<=10;n++)
	{
		s+=tmp;
		tmp/=2;
	}

	tmp/=2;

	cout<<"到第十次落地时,共经过"<<s<<"m,"<<endl
		<<"第十次反弹"<<tmp<<"m。"<<endl;
}

4.6 // 1534 766 382 190 94 46 22 10 4 1
#include <iostream.h>

int pre_day(int n);

void main()
{
	int peach=1,i=10;

	for(;i>1;i--)
	{
		peach=pre_day(peach);
	}
	
	cout<<"The peachs in the first day is "<<peach<<endl;
}

int pre_day(int n)
{
	return (n+1)*2;
}

4.7
#include <iostream.h>
#include <math.h>

int pre_day(int n);

void main()
{
	double a,Xn,Xm;  //m=n+1
	cout<<"please input a: "<<endl;
	cin>>a;

	Xn=a;
	Xm=0.5*(Xn+a/Xn);

	while(fabs(Xm-Xn)>1e-7)  //注意:使用while须避免陷入死循环
	{
		Xn=Xm;
		Xm=0.5*(Xn+a/Xn);
	}

	cout<<"the sqrt of "<<a<<" is "<<Xm<<endl; 
}

4.8
(1)
#include <iostream.h>
#include <iomanip.h>

void main()
{
	for(int i=1;i<=10;i++)
	{
		for(int j=1;j<=(10-i);j++)
			cout<<"  ";
		for(j=1;j<=(2*i-1);j++)
			cout<<"# ";
		cout<<endl;
	}
}

(2)
#include <iostream.h>
#include <iomanip.h>

void main()
{
	for(int i=1;i<=8;i++)
	{
		for(int j=1;j<i;j++)
			cout<<" ";
		for(;j<=17;j++)
			cout<<"# ";
		cout<<endl;
	}
}

4.9
(1)
#include <iostream.h>
#include <iomanip.h>

void main()
{
	int i=1;
	cout<<setw(3)<<"*";
	for(;i<=9;i++)
	{
		cout<<setw(5)<<i;
	}
	cout<<endl;

	for(i=1;i<=9;i++)
	{
		cout<<"………";
	}
	cout<<endl;

	for(i=1;i<=9;i++)
	{
		cout<<setw(3)<<i;
		for(int j=1;j<=9;j++)
		{
			cout<<setw(5)<<i*j;
		}
		cout<<endl;
	}
}

(2)
与1不同之处:

	for(i=1;i<=9;i++)               //content
	{
		cout<<setw(3)<<i;
		for(int j=1;j<=i;j++)
		{
			cout<<setw(5)<<i*j;
		}
		cout<<endl;
	}

(3)
与1不同之处:
	for(i=1;i<=9;i++)               //content
	{
		cout<<setw(3)<<i;
		for(int j=1;j<i;j++)
		{
			cout<<setw(5)<<" ";
		}
		for(;j<=9;j++)
		{
			cout<<setw(5)<<i*j;
		}
		cout<<endl;
	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -