#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;
}