[求助]看看这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);
}
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.
实际上,我自己也不明白.这是老师布置的作业.
这是他们的测试:
测试输入 1 8
2 389,207,155,300,299,170,158,65
期待的输出 1 This machine can hold up 6 missles.
不能高于前面的,那不是就有389,207,155,65吗
----------------解决方案--------------------------------------------------------