當前位置:首頁 » 編程軟體 » 編程移動打靶

編程移動打靶

發布時間: 2022-02-23 23:24:50

㈠ 用遞歸演算法編程:一個射擊選手打靶,靶一共有10環,連10搶打中90環的可能有多少種 多謝大俠們相助!

void Fun(int a[], int count,int sum)
{
if(count == 0)
{
if(sum>=90)
{
/*for(int i=0;i<10;++i)
cout<<a[i] << " ";
cout<<endl;*/
//想要輸出就用上面的,只想得到結果就用下面的,其中num是全局變數
num++;
}
}
else
for(int i=0;i<=10;++i)
{
if((10-count)*10-sum>10)
continue;
a[10-count] = i;
Fun(a,count-1,sum+i);
}
}

結果是184756
---------------------------------------
如果只想求次數 下面的就夠了
void Fun(int count,int sum)
{
if(count == 0)
{
if(sum >= 90)
num++;
}
else
for(int i=0;i<=10;++i)
{
if((10-count)*10-sum>10)
continue;
Fun(count-1,sum+i);
}
}
--------主函數中調用Fun(10,0)第一個參數表示打靶剩餘次數,第二個表示前面打靶的總環數

㈡ 求VB6.0打靶小程序的原代碼

Dim Flag, Star As Boolean
Dim Per As Integer
Dim Right As Integer
Dim Wrong As Integer
Dim i As Integer
Dim st, dt, tt As Variant

Private Sub Command1_Click()
Star = True
st = Now
dt = Now
tt = dt - st
Text1.Text = Format(tt, "hh:mm:ss")
Right = 0
Wrong = 0
Label1.Caption = "擊中:" & Str(Right)
Label2.Caption = "失誤" & Str(Wrong)
End Sub

Private Sub Command2_Click()
Star = False
End
End Sub

Private Sub Form_Load()
Flag = False
Star = False
Right = 0
Wrong = 0
End Sub

Private Sub Picture1_Click(Index As Integer)
If Index = Per Then
Right = Right + 1
i = i + 1
Label1.Caption = "擊中:" & Str(Right)
Timer1_Timer
Else
Wrong = Wrong + 1
Label2.Caption = "失誤" & Str(Wrong)
End If
End Sub

Private Sub Timer1_Timer()
If Star = True Then
If Not Flag Then
Randomize
Per = Int(Rnd(8) * 9)
Picture1(Per).Picture = LoadPicture("d:\ren.bmp")
Timer1.Interval = Int((400 - 20 + 1) * Rnd + 400)
Flag = True
Else
Picture1(Per).Picture = LoadPicture("d:\chuang.bmp")
Per = -1
Timer1.Interval = Int((500 - 20 + 1) * Rnd + 100)
Flag = False
End If
dt = Now
tt = dt - st
Text1.Text = Format(tt, "hh:mm:ss")
End If
End Sub

㈢ C語言編程求解

設分別為a,b,c環
則有a+b+c=8
10a+7b+5c=53
其中a<5,b<8,c<11(這個應該不用解釋)

#include<stdio.h>
void main()
{
int a,b,c,x,y;
for(a=0;a<5;a++)
for(b=0;b<8;b++)
for(c=0;c<11;c++)
{
x=a+b+c;
y=10*a+7*b+5*c;

if(x==8&&y==53)
printf("10環d%發;7環d%發;5環d%發。",a,b,c);
}
}

㈣ 一個射擊運動員打靶,靶一共有10環,連開10槍打中90環的可能性有多少種請用遞歸演算法編程實現。

表示沒有編譯器,人工看的,結果不保證完全無誤
你的運行結果應該是沒有輸出。
都因為你的剪枝
if (time==2 && score<10) {
return 0;
}
沒有搞懂你的思路,你讓time>10的時候輸出,並在初始位置讓time=1,所以打的十槍應該是2,3,4,5,6,7,8,9,10,11!!!但是你用上述剪枝是認為time=2時應當是第二槍,所以若兩槍加起來沒有十環就無法打到90環。兩者矛盾,修改其一即可
因此對剪枝的可行改法有3
1.直接刪去剪枝部分,此時時間效率實在不理想,不推薦,但確實有結果
2.改為if (time==3 && score<10) {
return 0;
}這是對你的剪枝的修改,即time=3時才是第二槍但時間效率仍不高
3.改為if (score<(time-2)*10) {
return 0;
}這是對剪枝的推廣,不止是第二槍在任意一槍結束後,只要當前掉分超過10,就不可能達到90環。推薦
另外你的主函數中f(1,0)在此時是正確的,f(1,10)是不會在任何情況下正確,僅做剪枝上改動即可。
PS:for (i=1;i<11;i++) {
printf("%d",a[i]);
}可改為for (i=1;i<11;i++) {
printf("%d ",a[i]);//加入空格
}

㈤ scratch怎麼製作可移動場景

啟動Scratch,進入工作界面;
點Events(事件),將「當綠旗被點擊時開始」拖曳投放到右邊的腳本編輯區;
在角色列表中貓上面按滑鼠右鍵,刪除角色;
點Paint
new
sprite(繪制新角色);
點直線工具,左手按住鍵盤上的shift鍵不放,畫出一條標準的直線;
點Script開始編寫腳本;
點Events(事件),將「當綠旗被點擊時開始」拖曳投放到右邊的腳本編輯區;
點Motion(運動),將set
x
to
0(將X坐標設為0)拉到右邊;
點Sensing(偵測),將mouse
x(滑鼠的x坐標)拉到0的位置,替換到默認值0,就可以將球拍追隨滑鼠的運動,將它的x坐標設為滑鼠的x坐標;
點Control(控制),給它加上Forever(循環)語句,就可以讓球拍連續左右移動了;
點綠旗開始執行程序,點紅色按鈕停止執行,可以發現,在程序運行的過程中,右邊的腳本一直閃爍亮著,一旦按紅色按鈕程序停止執行後,腳本不再發亮,是不是很神奇?趕快動手試試吧!

㈥ scratch編程小游戲怎麼做圖解

目前2.0官方的軟體是不支持中文輸入的,解決的方法只能在外部做成圖片通過角色導入,通常方便一點使用ppt製作文字圖片,保存成png格式透明圖片,當然也可以使用ps,ai等軟體製作,期待3.0可以使用中文吧。

㈦ 一個射擊運動員打靶,靶一共有10環,連開10槍打中90環的可能性有多少種請用遞歸演算法編程實現。[中國某著

先把問題在紙上描述清楚,再開始寫程序,我看你的問題補充部分就是在糾纏細枝末節的i++、數組等問題,根本沒有命中問題的要害。

先把你要求的問題轉化一下,就是10個數加起來等於90,但十個數都不超過10,列方程如下

x1+x2+...+x10==90, 0<=x1,x2,...,x10<=10

那麼開始來想遞歸,遞歸要先想遞歸什麼時候結束,假定已經打了9槍,剩下最後一槍 x10,那麼這樣寫:

foo(sum, left=1 ){
if(left==1){

for(x10=0;x10<11;x10++){

if(sum + x10 ==90)
cnt++;

}
return cnt;
}
}
再想遞歸的一般情況,遞歸函數
foo(sum, left) 表示當前總和為sum,還剩下left槍的,最後總和為90的所有組合數。
那麼當前打了x環,之後,總和就是sum+x, 還剩下left-1槍

所以寫出來就是:

foo(sum, left)
{
for(x=0;x<11;x++){
cnt += foo(sum+x9, left-1)
}
return cnt;

}

把上面2段合起來就是:
foo(sum, left)
{
cnt = 0;

if(left==1){
for(x=0;x<11;x++){
if(sum + x ==90)
cnt++;
}
return cnt;
}
for(x=0;x<11;x++){
cnt += foo(sum+x, left-1);
}
return cnt;
}
最後寫main函數

int main()
{
foo(0, 10);

}

當你把遞歸寫正確之後,再考慮優化你的演算法,比如剪枝策略,把某些明顯不可能的解去掉,這樣就可以加速你的代碼的運行。

㈧ 部隊怎樣練習移動靶,固定靶移動靶是怎麼樣的固定靶就是固定的山地還是什麼

靶,就是瞄準或者射擊的目標,說白了就是用木條做一個框,上面釘上木板,再貼一張畫有環數標記的紙,立桿較長,可以埋在地上,一般有胸環靶,半身靶,機槍靶。移動靶同固定靶大體一樣,只是能夠移動,早先是人舉,現在是電機帶動。

熱點內容
java代碼自動編譯 發布:2025-01-16 19:58:14 瀏覽:313
編程很困難 發布:2025-01-16 19:58:09 瀏覽:673
gg登錄源碼 發布:2025-01-16 19:58:07 瀏覽:292
微信收藏表情文件夾 發布:2025-01-16 19:28:57 瀏覽:15
ra伺服器搭建 發布:2025-01-16 19:28:12 瀏覽:18
javaftp讀取 發布:2025-01-16 19:28:02 瀏覽:185
樂課上傳作業 發布:2025-01-16 19:24:58 瀏覽:936
哈爾濱python培訓 發布:2025-01-16 19:19:30 瀏覽:915
java對象與線程 發布:2025-01-16 19:14:59 瀏覽:897
二維碼源碼vc 發布:2025-01-16 19:14:59 瀏覽:774