本文目录一览:
- 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应该很容易实现,难点是怎么快速找到红色区域。