C++打印指定字符组成的等腰三角
#include <iostream>using namespace std;
void d(int a ,char b )
{
for (int i = 1;i <= a;i++)
{
for(int j = 1;j<=a*2-i*2;j++)
{
cout<<' ';
}
for(int k=1;k<=i*2 - 1;k++)
{
cout<<b;
}
cout<<endl;
}}
int main()
{
int a;
char b;
cin>>a>>b;
d(a,b);
cout<<(a,b);
return 0;
}
为什么打印出来会多一行啊...我麻了orz 本帖最后由 sunrise085 于 2020-11-3 11:27 编辑
因为你在main函数中调用函数 d(a,b)之后,还有一行cout<<(a,b)
(a,b)是逗号语句,返回值是最后一个表达式,即b,所以这一行其实就是 cout<<b sunrise085 发表于 2020-11-3 11:25
因为你在main函数中调用函数 d(a,b)之后,还有一行cout
我把cout << (a ,b);改成cout << b;之后它还是和之前一样多了一行{:5_99:} 你的函数变量 j 控制不对吧?输出不了等腰三角形吧?
#include <iostream>
using namespace std;
void d(int a, char b)
{
for (int i = 1;i <= a;i++)
{
for (int j = 1;j <= 2 * a - i;j++)
{
cout << " ";
}
for (int j = 1;j <= 2 * i - 1;j++)
{
cout << b;
}
cout << endl;
}
}
int main()
{
int a;
char b;
cin >> a >> b;
d(a, b);
return 0;
}
白藏 发表于 2020-11-3 11:37
我把cout
{:5_104:}{:5_104:}
你这不是废话么。。。。
这一行不就是输出变量b么
删掉这一行不就不会输出了么,那样就不会多打印一行了 sunrise085 发表于 2020-11-3 13:15
你这不是废话么。。。。
这一行不就是输出变量b么
删掉这一行不就不会输出了么, ...
啊啊啊 明白了明白了hhh 抱歉一开始理解错意思了5555
谢谢你!
页:
[1]