Ⅰ 在c语言中怎样打印一个正三角形
你是问图形模式还是文本模式?
文本模式:(需计算: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=0;x1<480;x1++)for(x2=479,y2=1,y2<480;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);
}
调试过程中发现那段解三点的代码有问题,其实那是一个很简化的算法,你可以自己用穷举发解;
下面实我 注掉那段代码后的完整程序,运行结果已较理想
#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=0;x1<480;x1++)for(x2=531,y2=1,y2<480;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);
}
Ⅱ c语言正三角形
LS仁兄至少应该把k=0和j=0放在for循环里面吧。。。。都没测试就拿出来。。。。
正三角形前面有空格吧。。。
#include
void main()
{
int i,j,N;
scanf("%d",&N);
for(i=1;i<=N;i++)
{
for(j=1;j<=N+i-1;j++)
if(j<=N-i)printf(" ");
else printf("*");//输出*
printf("\n");//换行
}
}
如果前面没有空格则代码如下
#include
void main()
{
int i,j,N;
scanf("%d",&N);
for(i=1;i<=N;i++)
{
for(j=1;j<=2*i-1;j++)
printf("*");//输出*
printf("\n");//换行
}
}
12
首先数学上知道三角形三边长求面积的公式为:
已知三角形的三边分别是a、b、c,
先算出周长的一半s=1/2(a+b+c)
则该三角形面积s=根号[s(s-a)(s-b)(s-c)]
这个公式叫海伦——秦九昭公式
然后用c语言:
#include
#include
main()
{
int a,b,c;
double s1,s2;
scanf("%d%d%d", &a, &b,&c);
s1=(a+b+c)/2;
s2=sqrt(s*(s-a)*(s-b)*(s-c));
printf("%d";s2);
Ⅲ c语言编程,用函数调用输出正三角星形
//简单写了一个,满意请采纳,不懂可追问。
#include<stdio.h>
void main()
{
int n,i,j,ls;
n=0;
ls = 7;
for(i=1;i<=ls;i++)
{
for(j=1;j<=ls-i;j++)
printf(" ");
for(;j<ls+i;j++)
printf("*");
printf("\n");
n=n+1;
}
}
Ⅳ c语言正三角形代码怎么写
#include <stdio.h>
int main(void)
{
int a,b,c,n;
scanf("%d",&n);
for(a=1;a<=n;a++)
{
for(b=n;b>=a;b--)
{
printf(" ");
}
for(c=1;c<=2*a-1;c++)
{
printf("*");
}
printf("\n");
}
return 0;
}
Ⅳ 一个C语言程序代码看不懂,输出*正三角形和倒三角形
对于程序中包含了goto语句的程序,虽然理解起来方便,但我直接丢弃。
还有不得不说写这个代码的人是个奇葩,竟然写了个 while(0==0),让我大跌眼镜。
Ⅵ 请用C语言编程:输入一个正整数,各输出n行的正(倒)三角形宝塔图案
正三角形:第几行就是几颗星
倒三角形:第几行就是n-几颗星
正宝塔:第几行就是几*2-1颗星,前面加n-几个空格
用i循环控制行数,循环中用i值计算具体输出几个空格和星号
#include<stdio.h>
#defineKG(n-i)
#defineXH(i*2+1)
voidmain(){inti,j,n;
scanf("%d",&n);
for(i=0;i<n;i++){
for(j=0;j<KG;j++)printf("");
for(j=0;j<XH;j++)printf("*");
printf(" ");
}
}
倒宝塔,修改程序中以下两句即可
#defineKG(i)
#defineXH((n-i-1)*2+1)
Ⅶ C语言程序输出数字正三角
#include<stdio.h>
void PrintNumbers(int line)
{int i,j;
if(line<1){printf("输入参数错误 "); return;}
for(i=1;i<=line;i++)
{for(j=0;j<line-i;j++)
printf(" ");
for(j=1;j<=i;j++)
printf("%d",j);
for(j-=2;j>0;j--)
printf("%d",j);
printf(" ");
}
}
int main()
{ int n;
scanf("%d",&n);
PrintNumbers(n);
return 0;
}
Ⅷ 怎样能用C语言输出三角形
输出步骤如下:
//输入正整数n<=20输出一个n层的倒三角形.例如n=5则输出如下所示
// 解题思路 每层是2n-1个* 5-i个空格 双层for循环
/*
#########
#######
#####
###
#
*/
#include<stdio.h>
int main(){
int n;
scanf("%d",&n);
for(int i=n;i>0;i--){
for(int j=1;j<=2*i-1;j++){
printf("#");
}
printf(" ");
for(int j=0;j<=5-i;j++){
printf(" ");
}
}
return 0;
拓展资料:
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
Ⅸ c语言问题:编制程序,输出由“*”组成的正三角形的,边长由程序输入。例如n=4
LS仁兄至少应该把k=0和j=0放在for循环里面吧。。。。都没测试就拿出来。。。。
正三角形前面有空格吧。。。
#include <stdio.h>
void main()
{
int i,j,N;
scanf("%d",&N);
for(i=1;i<=N;i++)
{
for(j=1;j<=N+i-1;j++)
if(j<=N-i)printf(" ");
else printf("*");//输出*
printf("\n");//换行
}
}
如果前面没有空格则代码如下
#include <stdio.h>
void main()
{
int i,j,N;
scanf("%d",&N);
for(i=1;i<=N;i++)
{
for(j=1;j<=2*i-1;j++)
printf("*");//输出*
printf("\n");//换行
}
}
Ⅹ 用c语言编写程序,输出三角
#include <stdlib.h>
int main()
{
int n,i,j;
scanf("%d",&n); //读取三角形的行数
for(i=1;i<=n;i++) //外循环,控制行数
{
for(j=0;j<n-i;j++) //输出第行前面的空格
printf(" ");
if(i>1) //第一行除外
{
printf("*"); //先打首个*
for(j=1;j<2*(i-1);j++) //若非最后一行则中间连续若干空格
if(i<n)printf(" ");
else printf("*"); //最后一行则中间也是*
}
printf("*\n"); //打印最后一个*,然后换行
}
system("pause"); //暂停程序,便于看清结果
return 0; //返回0值,表示正常运行结束
}