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