白藏 发表于 2020-11-3 11:04:11

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:04:12

本帖最后由 sunrise085 于 2020-11-3 11:27 编辑

因为你在main函数中调用函数 d(a,b)之后,还有一行cout<<(a,b)
(a,b)是逗号语句,返回值是最后一个表达式,即b,所以这一行其实就是 cout<<b

白藏 发表于 2020-11-3 11:37:12

sunrise085 发表于 2020-11-3 11:25
因为你在main函数中调用函数 d(a,b)之后,还有一行cout

我把cout << (a ,b);改成cout << b;之后它还是和之前一样多了一行{:5_99:}

风过无痕1989 发表于 2020-11-3 12:43:42

你的函数变量 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;
}

sunrise085 发表于 2020-11-3 13:15:22

白藏 发表于 2020-11-3 11:37
我把cout

{:5_104:}{:5_104:}
你这不是废话么。。。。
这一行不就是输出变量b么
删掉这一行不就不会输出了么,那样就不会多打印一行了

白藏 发表于 2020-11-3 15:54:28

sunrise085 发表于 2020-11-3 13:15
你这不是废话么。。。。
这一行不就是输出变量b么
删掉这一行不就不会输出了么, ...

啊啊啊 明白了明白了hhh 抱歉一开始理解错意思了5555
谢谢你!
页: [1]
查看完整版本: C++打印指定字符组成的等腰三角