【记录】Accelerated C++:Practical Programming by Example第2章:循环和计数

#include<iostream>
#include<string>
using namespace std;
void main()
{
	cout<<"Please enter your name:";
	 string name;
	cin>>name;
	const string greeting="Hello,"+name+"!";
	int pad=1;   //空白
	int rows=3+pad*2;  //输出的行数
	for(int r=0;r!=rows;++r)
	{
		int c=0;   //c代表每一行输出字符的个数
		int cols=greeting.size()+pad*2+2; //输出的列数
		while(c!=cols)
		{
			if(r==pad+1&&c==pad+1)
			{
				cout<<greeting;    //这里不能加<<endl;否则出错
				c+=greeting.size();  //已输出了问候语,将问候语的长度赋值给c
			}
			else
			{
				if(r==0||r==rows-1||c==0||c==cols-1)  //比较
					cout<<"*";
				else
					cout<<" ";
					++c;
			}
		}
		cout<<endl;   //这个语句的作用分割输出的每一行,如果没有的话输出都会在同一行,不知道用什么方法代替
	}
}

习题:

2-1:令pad=0

2-3: 在    int pad=0;   //空白  后加入:    cout<<"Please enter your pad:";cin>>pad;

2-4:题目目的不明

2-5:

#include<iostream>
#include<string>
using namespace std;
int main()
{
	cout<<"请输入正方形边长:";
	int h=0;
	cin>>h;
	for(int r=0;r<h;++r)  //循环输出每一行
	{
		int c=0;  //每一行输出*个数
		while(c<h)  //循环输出每一列
		{
			if(r>=0||r<h-1||c>=0||c<h-1)
				cout<<"*";
			++c;
		}
		cout<<endl;      //问题同上,这样就不算是纯粹的正方形了
	}
	return 0;   
}


#include<iostream>
#include<string>
using namespace std;
int main()
{
	cout<<"请输入长方形的长(w)和宽(h),空格隔开:";
	int w,h;
	cin>>w>>h;
	cout<<"您要求输出的长方形的长为"<<w<<",宽为"<<h<<"。"<<endl;
	for(int i=0;i<h;++i)  //循环输出每一行
	{
		int c=0;  //每一行输出字符个数
		while(c<w)
		{
			if(i>=0||i<h||c>=0||c<w)
			cout<<"*";
			++c;
		}
		cout<<"\n";   //感谢:http://bbs.csdn.net/topics/390037521 c++怎么换行 - Google Search
		//用于替换之前的cout<<endl;
	}
	return 0;
}

问题解决  cout<<endl; 的替换问题

三角形暂时不会

2-6:

#include<iostream>
#include<string>
using namespace std;
int main()
{
	int i=0;
	while(i<10)
	{
		i+=1;
		cout<<i<<endl;
	}
}

利用cout<<"\n";修改

#include<iostream>
#include<string>
using namespace std;
int main()
{
	int i=0;
	while(i<10)
	{
		i+=1;
		cout<<i;
		cout<<"\n";
	}
}

2-7:

#include<iostream>
#include<string>
using namespace std;
int main()
{
	cout<<"请输入两个由大到小排列的数:";
	int x,y;
	cin>>x>>y;
	cout<<"输出"<<x<<"—"<<y<<"的整数如下"<<endl;
	for(int i=y;i<=x;++i)
	{
		cout<<i<<' ';
	}
	return 0;
}

2-8:

#include<iostream>
#include<string>
using namespace std;
int main()
{
	for(int i=1,sum=1;i<10;++i)
	{
		sum*=i;
		if(i==9)
		{
		cout<<sum<<endl;
		}
	}
	return 0;
}

如果注释一部分,显示如下:



2-9:

#include<iostream>
#include<string>
using namespace std;
int main()
{
	cout<<"输入两个数字,空格隔开:";
	double x,y,temp=0;  //一定要注意temp要赋初值
	cin>>x>>y;
	if(x>y) temp=x;
	else if(x<y) temp=y;
	else temp=x;
	cout<<x<<"和"<<y<<"中"<<temp<<"大"<<endl;
	return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值