⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 +

📁 一个画三角形的小程序。根据底边星号的个数和每行星号个数差(梯度)来自动画图。
💻
字号:
#include <iostream>
#include <conio.h>
using namespace std;

//TopStarNum——用于判别所给数据是否能使三角形顶部星号数为1
//BottomStarNum──三角形的底边星号个数
//LineNumOrig——当使用默认梯度时,三角形的高度
//Grads——行间梯度差
//BottomLength——三角形地边长度
//LineNum──三角形的高度
//SpaceNum──每行前部的空白长度
//StarNum──每行“*”的长度
//CurLine──当前行数
//Jump——当使用默认梯度时,Jump=1;否则,Jump=Grads
//DefaultFlag——标志变量,当使用默认梯度时,DefaultFlag=1


/*
*画出方格矩阵即可求出各变量间的关系
*/


int main()
{
	int UNEVEN;//标志变量,如果是奇数,则为1;否则,为0
	int INPUTFLAG=1;
	int TopStarNum,BottomStarNum, LineNumOrig, 
		SpaceNum,StarNum,CurLine,BottomLength,
		Grads,LineNum=1,Jump,DefaultFlag;
	char choice;
	system("color 70");
	system("title 三角形画图程序");
ReDraw:
	cout<<"\n\t\t\t欢迎使用三角形画图程序\n\n\n\n\n\n\n\n";
	while(INPUTFLAG) {
		cout<<"\t\t请输入三角形底边的星号个数:\t\t__\b\b";
		cin>>BottomStarNum;
		cout<<endl<<"\t\t请输入三角形各行单侧梯度差(0使用默认):\t__\b\b";
		cin>>Grads;
		if(Grads==0) {
			DefaultFlag=1;
			Jump=1;
			INPUTFLAG=0;
		} else {
			DefaultFlag=0;
			TopStarNum=BottomStarNum;
			
			LineNum=1;
			while(TopStarNum>1) {
				TopStarNum-=2*Grads;
				LineNum++;
			}
			//如果给出的底边星号数和行间梯度差不能使顶部星号数为1,则不合法
			if(TopStarNum!=1) {
				INPUTFLAG=1;
				cout<<endl;
				cout<<"输入数据不合法!"<<endl<<endl;
			} else {
				INPUTFLAG=0;
				Jump=Grads;
			}
		}
	}
	cout<<"\n\n\n\n";
	//判断三角形底边长的奇偶,并求解三角形高度,设置标记变量
	if(BottomStarNum%2!=0) {
		UNEVEN=1;
		LineNumOrig=BottomStarNum/2+1;
		BottomLength=BottomStarNum;
	} else {
		UNEVEN=0;
		LineNumOrig=BottomStarNum;
		BottomLength=BottomStarNum*2-1;
	}
	if(DefaultFlag)
		LineNum=LineNumOrig;
	for(CurLine=1;CurLine<=LineNumOrig;CurLine+=Jump) {

		cout<<"\t\t\t\t";//如果要求图像靠左边,将此行注释掉

		//求出当前行前部的空格个数
		if(UNEVEN)
			SpaceNum=(BottomStarNum+1)/2-CurLine;
		else
			SpaceNum=BottomStarNum-CurLine;

		//输出当前行前部的空格
		for(;SpaceNum>0;SpaceNum--) {
			cout<<" ";
		}

		//求出当前行中星号的个数
		if(UNEVEN)
			StarNum=CurLine*2-1;
		else
			StarNum=CurLine;
		
		//输出当前行的星号
		for(;StarNum>0;StarNum--) {
			cout<<"*";
			if(!UNEVEN)
				cout<<" ";
		}

		//当前行结束,换行
		cout<<endl;
	}
	cout<<"\n\n====三角形信息======================================================="<<endl<<endl;
	cout<<"\t\t底部星号个数:\t\t"<<BottomStarNum<<endl<<endl;
	cout<<"\t\t        高度:\t\t"<<LineNum<<endl<<endl;
	cout<<"\t\t    底边长度:\t\t"<<BottomLength<<endl<<endl<<endl;
	cout<<"\t\t按【Y】继续画三角形,其他任意键退出..";
	choice=getch();
	if(choice=='y'||choice=='Y') {
		system("cls");
		INPUTFLAG=1;
		goto ReDraw;
	}
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -