C语言程序输出数字正三角

Python013

C语言程序输出数字正三角,第1张

#include<stdio.h>

void PrintNumbers(int line)

{int i,j

if(line<1){printf("输入参数错误\n")return}

for(i=1i<=linei++)

{for(j=0j<line-ij++)

 printf(" ")

for(j=1j<=ij++)

 printf("%d",j)

for(j-=2j>0j--)

 printf("%d",j)

printf("\n")

}

}

int main()

{ int n

scanf("%d",&n)

 PrintNumbers(n)

return 0

}

输出步骤如下:

//输入正整数n<=20输出一个n层的倒三角形.例如n=5则输出如下所示

// 解题思路 每层是2n-1个* 5-i个空格 双层for循环

/*

#########

#######

#####

###

#

*/

#include<stdio.h>

int main(){

int n

scanf("%d",&n)

for(int i=ni>0i--){

for(int j=1j<=2*i-1j++){

printf("#")

}

printf("\n")

for(int j=0j<=5-ij++){

printf(" ")

}

}

return 0

拓展资料:

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

你是问图形模式还是文本模式?

文本模式:(需计算:80/(25*n)!=sqrt(3),因此文本模式下的正三角形不严格)

下面仅为一示意图

#include<stdio.h>

int main()

{

printf(" * ")

printf("* * ")

printf(" * * ")

printf("* * * * * * *")

return(0)

}

图形模式下可画的更严格:

思路是:先写一个程序解出(640,480)*(640,480)中正三角形的整数解,再用画线函数,画出。

/*此代码有问题,运行最后的那个程序*/

#include<stdio.h>

#include<math.h>

#include<conio.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=0x1<480x1++)for(x2=479,y2=1,y2<480y2++)for(x3=0,y3=479y3>=0y3--)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)

}

调试过程中发现那段解三点的代码有问题,其实那是一个很简化的算法,你可以自己用穷举发解;

下面实我 注掉那段代码后的完整程序,运行结果已较理想

#include<stdio.h>

#include<math.h>

#include<conio.h>

#include<graphics.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=0x1<480x1++)for(x2=531,y2=1,y2<480y2++)for(x3=0,y3=479y3>=0y3--)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)

}