本文目錄一覽:
- 1、C語言 攔截導彈
- 2、C語言導彈攔截
- 3、C語言中如何做到通過鍵盤控制一個圖形運動,按上下左右移動,並且能發射炮彈是用easyx畫出的圖形
- 4、C語言,蒙特卡羅方法 假設對某目標獨立射擊150發炮彈,每發炮彈的命中概率是0.02,炮彈被兩發以
- 5、c語言問題-炮彈軌跡模擬
C語言 攔截導彈
for (i=n-1;i=1;i–)
{
for (j=n;j=i+1;j–)
{
if (a[i]a[j] l[j]+1l[i])
{
l[i]=l[j]+1;
}//printf(“%d %d\n”,i,j);}
max=0,ss=1;//for(i=1;i=n;i++) printf(“%d “,l[i]);printf(“\n”);
for (i=1;in;i++)
{
在這裡有死循環,j永遠小於i
—————————————————
/*
VC6.0編譯運行成功
*/
#include
#include
/*
描述 Description
某國為了防禦敵國的導彈襲擊,研發出一種導彈攔截系統。但是這種導彈攔截系統有一個缺陷:雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於前一發的高度。某天,雷達捕捉到敵國的導彈來襲。由於該系統還在試驗階段,所以只有一套系統,因此有可能不能攔截所有的導彈。
輸入格式 Input Format
輸入數據只有一行,該行包含若干個數據,之間用半形逗號隔開,表示導彈依次飛來的高度(導彈最多有 20 枚,其高度為不大於 30000 的正整數)。
輸出格式 Output Format
輸出數據只有一行,該行包含兩個數據,之間用半形逗號隔開。第一個數據表示這套系統最多能攔截的導彈數;第二個數據表示若要攔截所有導彈至少要再添加多少套這樣的系統。
樣例輸入 Sample Input
389,207,155,300,299,170,158,65
樣例輸出 Sample Output
6,1
其它測試輸入樣例
389,207,155,300,299,170,65,158
5,3,1,4,3,2,1,0
1,2,3,4,5,6,2
*/
/*
分析,問題是動態規劃與Dilworth定理題目
*/
int main()
{
char s[105];
int i, j, n, a[21], l[21], sign[21], max = 0, min = 0;
scanf(“%s”, s);
//min 代表最長遞增序列長度 max 代表最短遞減序列長度
for (i = 0, j = 0, a[0] = l[0] = sign[0] = 0; i strlen(s); i++)
{
if (s[i] == ‘,’)
{
a[++j] = 0;
sign[j] = 1;
l[j] = 1;
}
else
{
a[j] = a[j] * 10 + (s[i] – ‘0’);
}
}
n = j;
for (i = n – 1; i = 0; i–)
{
int maxflag = 0, minflag = 0;
j = i + 1;
while(j = n)
{
if(a[i] a[j])
{
if(l[i] l[j])
{
l[i] = l[j];
}
maxflag = 1;
}
else if(a[i] a[j])
{
if(sign[i] sign[j])
{
sign[i] = sign[j];
}
minflag = 1;
}
j++;
}
if(maxflag)
l[i]++;
if(minflag)
sign[i]++;
if(max l[i])
{
max = l[i];
}
if(min sign[i])
{
min = sign[i];
}
}
printf(“%d,%d\n”, max, min – 1);
return (0);
}
C語言導彈攔截
你這個程序的整個程序邏輯就是錯誤的。可如下實現:
#include stdio.h
void main( )
{
int n, a[1000], i, curhigh, s;
scanf(“%d”, n);
for(i = 0; i n; i++)
scanf(“%d”, a[i]);
for(curhigh = 0, s = 0, i = 0; i n; i++) {
if(a[i] curhigh) {
curhigh = a[i];
s++;
}
}
printf(“%d\n”, s);
}
C語言中如何做到通過鍵盤控制一個圖形運動,按上下左右移動,並且能發射炮彈是用easyx畫出的圖形
讓其相應鍵盤消息,在消息相應代碼中,不斷的在屏幕的相應位置上去重繪你的圖形,你的圖形就得到了你的控制了
C語言,蒙特卡羅方法 假設對某目標獨立射擊150發炮彈,每發炮彈的命中概率是0.02,炮彈被兩發以
#includestdio.h
#includestdlib.h
#includetime.h
int main()
{
unsigned long i, k;
unsigned long m,n,j;
unsigned long N=100000000;
double x,y,pi;
long int a[100];
for(i=0; i100; i++) a[i]=(i+1)*1000000;
srand((unsigned)time(NULL));
printf(“運算時間比較長 耐心等待吧\n”);
printf(” 0%%\n”);
for(i=0,m=0, n=0, k=0;iN;i++)
{
if(i=a[k]-1) {system(“CLS”); printf(“運算時間比較長 耐心等待吧\n”); printf(“%3d%%\n”, 1+k++);}
for(j=0; j150; j++)
{
x=1.0*rand()/RAND_MAX;
if(x=0.02)
{
m++;
if(m==2)
{
n++;
m=0;
break;
}
}
}
}
pi=1.0*n/N;
// printf(“%d\n”,n);
printf(“%lf\n”,pi);
return 0;
}
c語言問題-炮彈軌跡模擬
幾個問題:1.機器人電機轉速有反饋嗎?應該可以知道什麼時候碰倒障礙物的吧?2.是不是必須通過黃線找到紅色區域啊?能不能直接找紅色區域?3.機器人肯定有兩個motor的把,左右實現轉向對吧?運動軌跡應該是找到黃線後,機器人的動作只有兩種帶速左轉右轉,當前位置在黃線上,那麼右轉,轉到黑色區域左轉;同理左轉轉到黑色區域就右轉,最後實現動作像蛇一樣沿著黃線前進。速度是根據電機前進方向的速度決定的,但是如果光感採樣頻率太低,電機速度太快有可能甩出黃線區域。這個邏輯用C應該很容易實現,難點是怎麼快速找到紅色區域。
原創文章,作者:CJNR,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/147788.html