当前位置: 代码迷 >> C语言 >> [求助]看看这C语言程序错在哪
  详细解决方案

[求助]看看这C语言程序错在哪

热度:203   发布时间:2006-04-23 17:22:00.0
[求助]看看这C语言程序错在哪

拦截导弹
某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。

输入
第一行为导弹的个数

第二行为使用逗号分隔的导弹依次飞来的高度(雷达给出的高度数据是不大于30000 的正整数)

输出
这套系统最多能拦截多少导弹

搜索更多相关的解决方案: C语言  

----------------解决方案--------------------------------------------------------
main()
{
int a[200],n,i,k,j,l,max,b[100];
l=0;max=0;
scanf("%d,",&n);
for(i=0;i<n;i++)
{scanf("%d,",&a[i]);i++;}
for(j=0;j<n;j++)
{
for(i=j;i<n;i++)
if(a[j]<a[i+1]) {b[l]=i+1-j;l++;break;}
}
k=l;
for(i=0;i<k;i++)
if(max<b[i]) max=b[i];
printf("This machine can hold up %d missles.",max);
}
----------------解决方案--------------------------------------------------------
以下是引用tianyi1在2006-4-23 17:23:00的发言:
main()
{
int a[200],n,i,k,j,l,max,b[100];
l=0;max=0;
scanf("%d,",&n);
for(i=0;i<n;i++)
{scanf("%d,",&a[i]);i++;}   /*记得最后的数据要加个",",还有为什么还要i++?*/
for(j=0;j<n;j++)
{
for(i=j;i<n;i++)
if(a[j]<a[i+1]) {b[l]=i+1-j;l++;break;}
}
k=l;
for(i=0;i<k;i++)
if(max<b[i]) max=b[i];
printf("This machine can hold up %d missles.",max);
}

程序俺还看不太明白,你把规则说下?


----------------解决方案--------------------------------------------------------

你的程序比较好理解,但是我真的看不出来和导弹有啥联系?


----------------解决方案--------------------------------------------------------

看不明白你的题止的意思


----------------解决方案--------------------------------------------------------
实际上,我自己也不明白.这是老师布置的作业.
这是他们的测试:
测试输入  1 8
   2 389,207,155,300,299,170,158,65

期待的输出 1 This machine can hold up 6 missles.

----------------解决方案--------------------------------------------------------
谢谢3楼的提醒
----------------解决方案--------------------------------------------------------
呵呵!实力强!
----------------解决方案--------------------------------------------------------
怎么感觉按他的说法,只能打下来一颗导弹呢
----------------解决方案--------------------------------------------------------
以下是引用tianyi1在2006-4-23 21:03:00的发言:
实际上,我自己也不明白.这是老师布置的作业.
这是他们的测试:
测试输入  1 8
   2 389,207,155,300,299,170,158,65

期待的输出 1 This machine can hold up 6 missles.

不能高于前面的,那不是就有389,207,155,65吗


----------------解决方案--------------------------------------------------------
  相关解决方案