| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3209 人关注过本帖
标题:用dev c++打印出一个由*围成的空心三角形 求指教。。
只看楼主 加入收藏
WPH0116
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2012-4-7
收藏
得分:0 
谁会用那个字符数组打印这个程序呢?
2012-04-10 17:23
WPH0116
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2012-4-7
收藏
得分:0 
谁会用那个字符数组打印这个程序呢?
2012-04-11 16:01
WPH0116
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2012-4-7
收藏
得分:0 
汗~~··
2012-04-12 15:40
WPH0116
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2012-4-7
收藏
得分:0 
我晕····
2012-04-13 07:36
ZJQLOVELYY
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:105
专家分:166
注 册:2011-8-1
收藏
得分:0 
LZ想法,,是挺新的,可如果要打印一个大的呢?是不是又要加?我的思路简单的是用外循环控制行数,里面放三个循环,一个控制的空格,一个控制中间空格,一个输出星,或用setw和setfill组合,具体实现待我上机,手机不好打
2012-04-13 11:27
钟离文扬
Rank: 1
来 自:山东泰安
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-4-11
收藏
得分:0 
同意八楼、、、、、
2012-04-13 23:13
WPH0116
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2012-4-7
收藏
得分:0 
我是没对正  当程序呢?
2012-04-20 23:22
ab1034982749
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:215
专家分:1185
注 册:2012-4-14
收藏
得分:0 
#include<iostream>
using namespace std;
int main(void)
{
    int i,j,k;
    for(i=1;i<=3;i++)
    {
        for(j=1;j<9-2*i;j++)
            cout<<" ";
        cout<<"*";
        if(i!=1)
        {
            for(k=1;k<=4*i-5;k++)
                cout<<" ";
            cout<<"*";
        }
        cout<<"\n";
        
    }
    cout<<" ";
    for(k=0;k<=10;k++)
        cout<<"*";
    cout<<"\n";
    return 0;
}
2012-04-21 01:03
wxl249424820
Rank: 2
等 级:论坛游民
帖 子:17
专家分:14
注 册:2010-2-6
收藏
得分:0 
程序代码:
//打印出一个由*围成的空心三角形
/*
我的思路:

4   *                  第一行 4个空格1个*
3  *1*                 第二行 3个空格1个* + 1个空格1个*
2 * 3 *                第三行 2个空格1个* + 3个空格1个* 
1*  5  *               第四行 1个空格1个* + 5个空格1个*
*********              最后一行  三角形*个数= 行数X2-1   9个*

下面是我自己写的,我是新手,所以代码可能写得有点多,有点啰嗦,不会优化结构。请各位多多包涵。不过程序准确运行,呵呵
*/
#include <iostream>
using namespace std;
int main()
{
    int i,j=0,Lkg=0,Ckg,h=0;
    cout<<"请输入三角形*组成的行数:\n";
    cin>>h;
    Lkg=h-2;//第二行左边的空格个数
    Ckg=1;//第二行中间的空格个数
    for(i=0;i<h-1;i++) //按照三角形行数,绘出第一行* 号的位置
    {
        cout<<" ";
    }
    cout<<"*\n";
    for(i=0;i<h-2;i++)
    {     
        for(j=0;j<Lkg;j++)  //循环打出左边空格个数
        {
            cout<<" ";

        }
        Lkg--;
        cout<<"*";

        for(j=0;j<Ckg;j++)//循环打出中间空格个数
        {
            cout<<" ";
        }
        Ckg=Ckg+2; //中间的空格数后一行比前一行多2个。
        cout<<"*\n";
    }
    for(i=0;i<h*2-1;i++)//绘画出最后一行,也就是三角形的底边。
    {
        cout<<"*";
    }
    cout<<endl;
    system("pause");
    return 0;
}
用for循环嵌套写的,各位请多多指教,有什么可以改良的地方,望大家帮忙指正。

我只是只菜鸟,,来学习的
2012-04-23 00:15
天使梦魔
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:37
帖 子:564
专家分:2754
注 册:2007-8-29
收藏
得分:0 
#include <iostream>
using namespace std;

int main()
{
    int t;//t用来输入打印多少行的三角形
    int o=1;//o用来记录三角形的空心空格,等于是因为从第二行开始计算
    cin>>t;//输入一个数
    t--;//输入后减少一次作业
    for(int s=t;s;s--){cout<<" ";}//第一行有点特殊,把它排除在外,s代表需要空几个格子来打印第一行
    cout<<"*"<<endl;
    while(t>=2)//t这种动作等于减少2次运行机会,它表示三角形头和尾巴都是很特殊的,我们只要运行中间的部分
    {
        for(int s=t-1;s;s--){cout<<" ";}//这是从第二行开始计算的,这个循环控制三角形左边距离
        cout<<"*";//打印三角形左边
        for(int s=o;s;s--){cout<<" ";}//纯粹打印三角形的中空
        o+=2;//三角形的中空是单数加的,公式等于o=o+2
        cout<<"*"<<endl;打印右边
        t--;
    }
    o+=2;//三角形的中间打好了,o现在代表最后一行的中间空格,只要两边再加上就是最后一行
    while(o){cout<<"*";o--;}//利用o打印最后一行
    cin.get();cin.get();//不用理会,只是让程序暂停
}





程序编译后输入一个数字,打印多少行的三角形
2012-04-23 15:25
快速回复:用dev c++打印出一个由*围成的空心三角形 求指教。。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016175 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved