Accelerated C++ 习题 第2章
文章目录
2-5 编写一个程序,让它输出一系列的“*”字符,程序输出的这些字符将构成一个正方形,一个长方形和一个三角形。
正方形
int a = 0;
cout << "输入正方向边长:";
cin >> a;
for (int r = 0; r < a; r++)//a行
{
//输出列
for(int c = 0; c < a; c++)
{
//输出边界
if (r == 0 || r == a - 1 || c == 0 || c == a - 1)
cout << '*';
else
cout << ' ';
}
cout << endl;//换行
}
长方形
int h = 0;
int w = 0;
cout << "输入长方向的宽:";
cin >> w;
cout << "输入长方形的高:";
cin >> h;
for (int r = 0; r < h; r++)//a行
{
//输出列
for(int c = 0; c < w; c++)
{
//输出边界
if (r == 0 || r == h - 1 || c == 0 || c == w - 1)
cout << '*';
else
cout << ' ';
}
cout << endl;//换行
}
等腰三角形
int h = 15;
//等腰三角形
for (int r = 0; r < h; r++)//当前行号为r
{
for (int c = 0; c < h * 2 - 1; ++c) //控制循环次数
{
//输出顶点
if (r == 0)
if (c == h - r - 1)
cout << '*';
else
cout << ' ';
//输出底边
else if (r == h - 1)
cout << '*';
//输出两条侧边
else if (r > 0 && r < h - 1)
if (c == h - r - 1 || c == h + r - 1)
cout << '*';
else
cout << ' ';
}
cout << endl;//换行
2-6 下面的代码是做什么的?
int i=0;
while(i<10)
{
i+=1;
std::cout << i << std::endl;
}
每行依次输出1-10
2-7 编写一个程序来一次输出从10~-5的整数
int i = 10;
while (i >= -5)
{
cout << i << ' ';
--i;
}
2-8 编写一个程序来计算区间[1,10)中的所有数值的乘积。
int s = 1;
for (int i = 1; i < 10; i++)
{
s *= i;
}
cout << s << endl;
2-9 编写一个程序,让用户输入两个数值并告知用户在这两个数值中哪一个较大
int max = 0;
int m, n;
cout << "请输入2个数:";
cin >> m >> n;
if (m == n)
{
cout << "一样大" << endl;
}
else
{
max = m > n ? m : n;
cout << "2个数中比较大的是: " << max << endl;
}