扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
首先你要知道怎样打印三角形,一般都是,通过两个for 循环,
创新互联建站专注于崖州网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供崖州营销型网站建设,崖州网站制作、崖州网页设计、崖州网站官网定制、小程序设计服务,打造崖州网络公司原创品牌,更为您提供崖州网站排名全网营销落地服务。
for(i=0;in;i++)
{
for(j=0;ji;j++)
{
printf(“*");
}
printf(“\n");
}
输出三角形,之后你更改i,jn的数值,做相应的变化
很标准的等腰三角形#includestdio.h
main()
{
int row,col,i;
for(i=1;i=10;i++){
for(row=1;row=10-i;row++)
printf(" ");
for(col=1;col=2*i-1;col++)/* '*'的个数和行数 i 有种内在关系*/
printf("*");
printf("\n");
}
用一个for语句输出由星号组成的等腰三角形方法:
1、温习课本上的方法
课本上的思路是外部使用一个for循环语句来控制打印行数,内部用两个for循环语句分别打印空格符以及星号符。这种思路说白了就是打印了两个三角形,一个是倒直角三角形,另一个是等腰三角形。如下图所示:
2、思考后自己得出的方法
通过仔细观察会发现,其实可以把这个整个图案看成一个梯形,那么我循环的时候就按顺序先打印完空格再打印星号,一行一行的将梯形打印出来。如下图所示:
#include stdio.h
//#includeconio.h//头文件
#include math.h
int main()
{int n,i,j;
scanf("%d",n);
for(j=0;jn;j++)
{
for(i=n;ij;i--)
printf(" ");
for(i=0;i2*j+1;i++)
printf("*");
printf("\n");
}
/*
for(j=0;jn;j++)
{
for(i=0;i=j+1;i++)
printf(" ");
for(i=n-1;ij;i--)
printf("*");
printf("\n");
}*/
for(i=0;in;i++)
{
for(j=0;ji+1;j++)
printf(" ");
for(j=0;j2*(n-i)-1;j++)
printf("*");
printf("\n");
}
}
你对照看看吧
6
*
***
*****
*******
*********
***********
***********
*********
*******
*****
***
*
Press any key to continue
你是问图形模式还是文本模式?
文本模式:(需计算:80/(25*n)!=sqrt(3),因此文本模式下的正三角形不严格)
下面仅为一示意图
#includestdio.h
int main()
{
printf(" * ")
printf(" * * ")
printf(" * * ")
printf("* * * * * * *")
return(0);
}
图形模式下可画的更严格:
思路是:先写一个程序解出(640,480)*(640,480)中正三角形的整数解,再用画线函数,画出。
/*此代码有问题,运行最后的那个程序*/
#includestdio.h
#includemath.h
#includeconio.h
#define P(a,b,i,j) (pow((ai-aj),2)+pow((bi-bj),2))
int main()
{
int x1,y1,x2,y2,x3,y3;
for(x1=0,y1=0;x1480;x1++)for(x2=479,y2=1,y2480;y2++)for(x3=0,y3=479;y3=0;y3--)if(P(x,y,1,2)==P(x,y,1,3)P(x,y,1,2)==P(x,y,2,3))printf("%6d%6d%6d%6d%6d%6d",x1,y1,x2,y2,x3,y3);
int gd=DETECT,gm;
initgraph(gd,gm,"c:\\tc201e\\bgi");
cleardevice();
setbkcolor(9); setcolor(4);
line(x1,y1,x2,y2);line(x2,y2,x3,y3);line(x3,y3,x1,y1);
getch();
return(0);
}
调试过程中发现那段解三点的代码有问题,其实那是一个很简化的算法,你可以自己用穷举发解;
下面实我 注掉那段代码后的完整程序,运行结果已较理想
#includestdio.h
#includemath.h
#includeconio.h
#includegraphics.h
#define P(a,b,i,j) (pow((ai-aj),2)+pow((bi-bj),2))
int main()
{
int x1=219,y1=1,x2=531,y2=367,x3=0,y3=415;
/*
for(x1=0,y1=0;x1480;x1++)for(x2=531,y2=1,y2480;y2++)for(x3=0,y3=479;y3=0;y3--)if(P(x,y,1,2)==P(x,y,1,3)P(x,y,1,2)==P(x,y,2,3)){printf("%6d%6d%6d%6d%6d%6d",x1,y1,x2,y2,x3,y3);break;}
getchar();getchar();
*/
int gd=DETECT,gm;
initgraph(gd,gm,"c:\\tc201e\\bgi");
cleardevice();
setbkcolor(9); setcolor(4);
line(x1,y1,x2,y2);line(x2,y2,x3,y3);line(x3,y3,x1,y1);
getch();
return(0);
}
很标准的等腰三角形
#includestdio.h
main()
{
int row,col,i;
for(i=1;i=10;i++){
for(row=1;row=10-i;row++)
printf(" ");
for(col=1;col=2*i-1;col++)/* '*'的个数和行数 i 有种内在关系*/
printf("*");
printf("\n");
}
}
输出步骤如下:
//输入正整数n=20输出一个n层的倒三角形.例如n=5则输出如下所示
// 解题思路 每层是2n-1个* 5-i个空格 双层for循环
/*
#########
#######
#####
###
#
*/
#includestdio.h
int main(){
int n;
scanf("%d",n);
for(int i=n;i0;i--){
for(int j=1;j=2*i-1;j++){
printf("#");
}
printf("\n");
for(int j=0;j=5-i;j++){
printf(" ");
}
}
return 0;
拓展资料:
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流