當前位置:首頁 » 編程語言 » c語言塔

c語言塔

發布時間: 2022-06-20 03:51:14

c語言菱形字母塔代碼設計

#include<stdio.h>
intmain()
{intn,i,j;
chara='A';
printf("請輸入你想要的三角形塔高度:");
while(scanf("%d",&n)==1)
{for(i=1;i<=n;i++)
{for(j=1;j<=n-i;j++)
printf("");
for(j=0;j<i;j++)
printf("%c",a+j);
for(j=i-2;j>=0;j--)
printf("%c",a+j);
printf(" ");
}
for(i=n-1;i>0;i--)
{for(j=1;j<=n-i;j++)
printf("");
for(j=0;j<i;j++)
printf("%c",a+j);
for(j=i-2;j>=0;j--)
printf("%c",a+j);
printf(" ");
}
printf("請輸入你想要的三角形塔高度:");
}
return0;
}

㈡ C語言 有4個圓塔

if(s1>1&&s2>1&&s3>1&&s4>1)
這種寫法也沒錯的,不過要注意sqrt是返回double類型的,s1到s4都定義了float是不妥的。
這里僅僅是判斷>1而不是>=1,所以用if(d1>1&&d2>1&&d3>1&&d4>1)比較巧妙吧

㈢ C語言編程 塔的問題

main()
{
int h=10; /*定義塔高*/
float x1=2,y1=2,x2=-2,y2=2,x3=-2,y3=-2,x4=2,y2=-2; /*定義各個塔的中心坐標*/
float x,y,d1,d2,d3,d4; /*定義任意點的坐標和該點到各個塔中心的距離*/
printf(「input a point(x,y):」); /*提示輸入數據*/
scanf(「%f,%f」,&x,&y); /*輸入數據*/
d1=(x-x1)*(x-x1)+(y-y1)*(y-y1); /*任意點到第一個塔的距離*/
d2=(x-x2)*(x-x2)+(y+y2)*(y+y2); /*任意點到第二個塔的距離*/
d3=(x+x3)*(x+x3)+(y-y3)*(y-y3); /*任意點到第三個塔的距離*/
d4=(x+x4)*(x+x4)+(y+y4)*(y+y4); /*任意點到第四個塔的距離*/
if (d1>1 && d2>1 && d3>1 && d4>1) h=0;/*任意點如果不在塔上則該點高度為零,否則高度還是原值,即不變 */
printf(「the high of this point is:%d\n」,h); /*輸出結果*/
}

㈣ C語言漢諾塔程序

將以下內容全部復制到新建的源文件中:(本人自己寫的,因為你那課本上的代碼,沒解釋,書寫不規范,很難理解清楚,所以我直接新寫了一個完整的代碼,附帶詳細說明)
#include <stdio.h>
//漢諾塔x層塔從A塔整體搬到C塔,中間臨時B塔。
//x層塔是從大到小往上疊放。每次移動只能移動一層塔。並且在移動過程中必須保證小層在上邊
//藉助B塔可以將x層塔全部從A搬到C上,並且符合要求(在移動過程中大的那塊在下邊,小的那塊在上邊)
int main()
{
void tower(int x,char a,char b,char c); //聲明函數
int x=5,a='A',b='B',c='C'; //x表示有5層塔,具體要多少層自己修改這個值。abc分別表示ABC塔。

tower(x,a,b,c); //x層塔從a移動到c的全過程,主程序只有這條有效語句

return 0;
}

//以下是tower函數的定義
//參數解析:x層塔放在a上,b是中間塔,c是目標塔。即x層塔要從a搬到c上。
//此函數實現x層塔從a整體轉移到c上。以及這個過程是怎麼搬的全部過程。
void tower(int x,char a,char b,char c)
{
if(x==1)printf("將%d從%c放到%c\n",x,a,c); //只有1層塔時,直接從a搬到c上。
else //不止1層塔,則先將x-1層塔從a按照規律搬到b上,再將最後一塊從a搬到c上,最後再將b上的x-1層塔按照規律搬到c上。
{
tower(x-1,a,c,b); //先將x-1層塔從a按照規律搬到b上,注意參數b放在最後,因為放在最後的參數是准備搬過去的目標塔。
printf("將%d從%c放到%c\n",x,a,c); //將最後一塊從a搬到c上
tower(x-1,b,a,c); //最後再將b上的x-1層塔按照規律搬到c上,注意參數b放在開頭,因為x-1層是要從b上搬過去的。
}
}

㈤ C語言以下數字塔怎麼寫出來,求大神

#include<stdio.h>
intmain()
{
inti,j;
for(i=1;i<=6;i++)
{
for(j=0;j<i&&j<5;j++)
printf("%d",i+j);
printf(" ");
}
return0;
}

㈥ C語言中hanoi塔的問題

#include <graphics.h> struct H { int data[15];/*存放每個盤的代號*/ int top;/*每個塔的具體高度*/ }num[3];/*三個塔*/ void move(char x,char y,struct H num[3]);/*移動的具體過程*/ void hanoi(char x,char y,char z,int n,struct H num[3]);/*遞歸*/ void Init(void);/*初始化*/ void Close(void);/*圖形關閉*/ int computer=1;/*自動控制與手動控制的標志*/ int speed=0;/*全局變數speed主要是演示過程的速度*/ void main(void) { Init();/*初始狀態*/ Close();/*圖形關閉*/ exit(0); } void Init(void)/*初始化*/ { int gd=DETECT,gm; int i,n,color; clrscr(); printf("please input n(n<=10): ");/*輸入要演示的盤子數*/ scanf("%d",&n); printf("Please input 1 or 2:\n1.computer 2.people\n"); scanf("%d",&i); if(i==2)/*選擇手動控制標志為0*/ computer=0; if(n<1||n>10) n=10;/*越界的話n當10處理*/ if(computer)/*如果是自動控制的話輸入速度*/ { printf("please input speed: ");/*輸入速度*/ scanf("%d",&speed); } initgraph(&gd,&gm,"c:\\tc"); cleardevice(); for(i=0;i<3;i++) num[i].top=-1;/*三個地方的高度開始都為-1*/ for(i=0;i<n;i++)/*畫一開始的塔座A上的盤子*/ { num[0].top++;/*棧的高度加1*/ num[0].data[num[0].top]=i; /*最大的盤子代號為0,依次為1,2,…n-1*/ color=num[0].data[num[0].top]+1;/*盤子的顏色代碼為棧頂盤子代號加1*/ setfillstyle(SOLID_FILL,color); bar(100-(33-3*num[0].data[num[0].top]),400-20*i-8,100+ (33-3*num[0].data[num[0].top]),400-20*i+8); /*畫矩形*/ } setcolor(YELLOW); outtextxy(180,450,"any key to continue"); settextstyle(0,0,2); outtextxy(90,420,"A"); /*塔座標志*/ outtextxy(240,420,"B"); outtextxy(390,420,"C"); getch();/*接收字元後就執行遞歸操作*/ hanoi('a','b','c',n,num); } void move(char x,char y,struct H num[3])/*移動的具體過程*/ { int i; char num1[3],num2[3]; sprintf(num1,"%c",x-32);/*將小寫變成大寫,並轉換成字元串輸出*/ sprintf(num2,"%c",y-32); setfillstyle(SOLID_FILL,BLACK);/*把原來的地方移去塗黑*/ bar(0,0,640,60); setcolor(RED); outtextxy(150,30,num1);/*輸出移動過程*/ outtextxy(200,30,"--->"); outtextxy(310,30,num2); settextstyle(0,0,2); setfillstyle(SOLID_FILL,BLACK);/*把原來的地方移去塗黑*/ bar(100+150*(x-97)-(33-3*num[x-97].data[num[x-97].top]), 400-20*num[x-97].top-8,100+150*(x-97)+(33-3* num[x-97].data[num[x-97].top]),400-20*num[x-97].top+8); num[y-97].top++;/*入棧,目標點的top加1*/ num[y-97].data[num[y-97].top]=num[x-97].data[num[x-97].top];/*在目標點盤子的代號與源點盤子的代號相同*/ num[x-97].top--;/*出棧,原來地方的top減1*/ setfillstyle(SOLID_FILL,num[y-97].data[num[y-97].top]+1);/*盤子顏色代碼是棧頂盤子代號加1*/ bar(100+150*(y-97)-(33-3*num[y-97].data[num[y-97].top]), 400-20*num[y-97].top-8,100+150*(y-97)+ (33-3*num[y-97].data[num[y-97].top]),400-20*num[y-97].top+8); if(computer)/*自動控制就用delay*/ delay(speed);/*延時函數*/ else getch();/*手動控制的話就自己按鍵盤來控制*/ } void hanoi(char one,char two,char three,int n,struct H num[3])/*遞歸n為盤子數,num為堆棧*/ { if(n==1) move(one,three,num);/*如果盤子為1,將這個盤子從塔座A移動到塔座C*/ else { hanoi(one,three,two,n-1,num);/*將塔座A的前n-1個盤子移到塔座B*/ move(one,three,num);/*將塔座A的第n個盤子移到塔座C*/ hanoi(two,one,three,n-1,num); /*將塔座B的n-1個盤子移到塔座C*/ } } void Close(void)/*圖形關閉*/ { getch(); closegraph(); } 能不能追加點懸賞分啊?

㈦ c語言字元數字塔怎麼編

是不是這樣的叫「字元塔」:
1
1 1
1 1 1
大概可以這樣寫:
int k = 3;/*塔的層數*/
for(int i=1;i<k;++i)
{
for(int j=k;j>i;--j)
printf(" ");
printf("\n");
for(int j=0;j<i;++j,++j)
printf("%c",'1 ');
}

㈧ C語言--數塔

#include <stdio.h>

int num[100][100];

int main()
{
int C,H,i,j,temp;
scanf("%d",&C);
while(C--)
{
scanf("%d",&H);
for(i=0;i<H;i++)
{
for(j=0;j<=i;j++)
{
scanf("%d",&num[i][j]);
}
}
for(i=H-2;i>=0;i--)
{
for(j=0;j<=i;j++)
{
temp = num[i+1][j];
if(temp<num[i+1][j+1])
temp = num[i+1][j+1];
num[i][j] += temp;
}
}
printf("%d\n",num[0][0]);
}
}

㈨ c語言編寫字母塔

#include<stdio.h>
intmain()
{inti,j;
charc='A';
for(i=0;i<7;i++)
{for(j=0;j<7-i;j++)
putchar('');
for(j=0;j<=i;j++)//填j<=i;
putchar(c+i-j);
for(j=j-2;j>=0;j--)//填j>=0;
putchar(c+i-j);
printf(" ");
}
}

熱點內容
uc小說瀏覽器緩存 發布:2025-02-06 07:05:05 瀏覽:467
wifi路由手機怎麼設置密碼 發布:2025-02-06 07:00:57 瀏覽:985
nsurlsession上傳 發布:2025-02-06 06:55:18 瀏覽:336
亞洲十帥exo訪問 發布:2025-02-06 06:51:40 瀏覽:98
編程一首詩 發布:2025-02-06 06:45:04 瀏覽:528
驚聲尖笑5下載ftp 發布:2025-02-06 06:33:16 瀏覽:528
共享文件夾讓輸入密碼 發布:2025-02-06 06:32:28 瀏覽:970
收銀伺服器響應出錯什麼意思 發布:2025-02-06 06:24:43 瀏覽:607
sql用戶授權 發布:2025-02-06 06:24:42 瀏覽:677
蘋果手機相冊顯示正在上傳 發布:2025-02-06 06:05:43 瀏覽:542