當前位置:首頁 » 編程語言 » c語言正三角形程序
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言正三角形程序

發布時間: 2022-11-18 17:14:23

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");//換行
}
}