Ⅰ 在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值,表示正常運行結束
}