① c语言计算正三角形面积和周长
p=(a+a+a)/2.0;转换成浮点型再把结果赋给p
② 在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语言程序打一个三角形
要用三重循环,要不空格位置不好处理。每一行的空格需要一个FOR
for(int i=1;i<=5;i++) //控制每一行(这里一共5行)
{
for(int j=1;j<=5-i;j++) //控制每行前的空格位置
printf(" ");
for(j=1;j<=2*i-1;j++) //控制行内的星号
printf("*");
printf("\n");
}
如果是两重循环可能就是这样的,是个直角三角型.:
*
***
*****
********
三个循环控制最后的结果是这样的,正三角形
*
***
*****
*******
*********
④ 求用c语言输入空心正三角形,感谢了
//希望我的回答对你的学习有帮助
#include<stdio.h>
intmain()
{
intside;
while(1)
{
scanf("%d",&side);
if(side==0)break; //边长为0,结束程序
for(inti=0;i<side-1;i++)
{
for(intj=1;j<=side*2;j++)
{
if(j==side+i||j==side-i)printf("*");
elseprintf("");
}
printf(" ");
}
for(intj=1;j<=side*2;j++) //最后一行特殊处理
{
if(j%2!=0)printf("*");
elseprintf("");
}
printf(" ");
}
return0;
}
⑤ 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语言表示一个用*构成的正三角形
将9改为5就行啦:
//---------------------------------------------------------------------------
#include <stdio.h>
int main(void)
{
int i,j;
for(i = 0; i<5; i++) {
printf("%*c",32-i,'*');
for (j=1; j<2*i+1; j++)
putchar('*');
putchar('\n');
}
return 0;
}
//---------------------------------------------------------------------------
⑦ 一个C语言程序代码看不懂,输出*正三角形和倒三角形
对于程序中包含了goto语句的程序,虽然理解起来方便,但我直接丢弃。
还有不得不说写这个代码的人是个奇葩,竟然写了个 while(0==0),让我大跌眼镜。
⑧ 请帮帮忙啊!!用C语言编一程序,用*打一个正三角形。谢谢~!!!!
#include <stdio.h>
void main()
{
printf(" * \n");
printf(" * * \n");
printf("* * *\n");
}
⑨ 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");//换行
}
}