注册 登录
编程论坛 C++教室

关于打印两个空心三角形问题.

知白守黑 发布于 2017-04-04 21:33, 1945 次点击
只有本站会员才能查看附件,请 登录

大神们能给点思路咩?
我只能打印出一个空心的三角形;;;
2 回复
#2
yangfrancis2017-04-07 10:10
目测出六个小三角形底边中点坐标。扫描图形区域内的点,根据这些点与底边中点的距离,用数学方法算出是否位于三角形上,根据判定结果输出星号或空格
#3
yangfrancis2017-04-07 21:37
#include<iostream>
#include<math.h>
using namespace std;
bool OnTriangle(int core_x,int core_y,int x,int y)
{
    int tmp=abs(x-core_x);
    if((tmp==1||tmp==3)&&core_y==y||(tmp+core_y-y)==3)
        return true;
    else
        return false;
}
//六个关键点:(7,3)(23,3)(3,7) (11,7) (19,7) (27,7)
int main()
{
    for(int y=0;y<=7;y++)
    {
        for(int x=0;x<=31;x++)
            if(OnTriangle(7,3,x,y)||OnTriangle(23,3,x,y)||OnTriangle(3,7,x,y)
                ||OnTriangle(11,7,x,y)||OnTriangle(19,7,x,y)
                ||OnTriangle(27,7,x,y))
                cout<<"*";
            else
                cout<<" ";
        cout<<endl;
    }
    return 0;
}
1