| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2106 人关注过本帖
标题:C程序拦截导弹
只看楼主 加入收藏
zgwxwn
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2006-4-24
收藏
 问题点数:0 回复次数:12 
C程序拦截导弹

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

输入
第一行为导弹的个数

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

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

搜索更多相关主题的帖子: 导弹 雷达 系统 高度 
2006-04-24 12:49
cxwl3sxl
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:495
专家分:129
注 册:2005-11-12
收藏
得分:0 
#2奇怪哦,难道……

努力,哈哈,总有一天会变成高手~~~~~~因为我相信:没有办不到,只有想不到!http://t..cn/fpress
2006-04-24 22:20
zgwxwn
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2006-4-24
收藏
得分:0 

补充一下
输入
第一行 为导弹的个数

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


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



测试输入 9
9,207,155,300,299,170,800,158,650

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


coding & enjoying
2006-04-25 08:08
aogun
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:638
专家分:0
注 册:2006-4-5
收藏
得分:0 

这很简单啦
[CODE]#include <stdio.h>
int count(int* pArray,int n, int base)
{
int i;
int iCount = 0;
for (i = 0; i < n; i ++)
{
if(base >= pArray[i])
{
iCount ++;
}
}
return iCount;
}
int main(void)
{
int i, iCount;
int * pArray = NULL;
char szHeightArray[128];
char szHeight[16];
char * sztemp;
int iMax, iMaxCount, itemp;;

printf("Please enter the number of the missile:");
if (scanf("%d",&iCount) != 1)
{
printf("Error number\n");
return -1;
}
printf("Please enter the Height of the missile:");
if (scanf("%s", szHeightArray) != 1)
{
printf("Error input\n");
return -1;
}
pArray = malloc(iCount * sizeof(int));
if (NULL == pArray)
{
printf("alloc memery failed\n");
return -1;
}
sztemp = szHeightArray;
for(i = 0; i < iCount; i ++)
{
if (sscanf(sztemp, "%d,", &pArray[i]) != 1)
{
printf("Error input\n");
free(pArray);
return -1;
}
while(*sztemp != ',')
{
sztemp ++;
}
sztemp ++;
}
iMax = pArray[0];
iMaxCount = count(pArray + 1, iCount - 1, iMax);
for (i = 1; i < iCount; i ++)
{
if (pArray[i] < iMax)
{
continue;
}
itemp = count(&pArray[i], iCount - i, pArray[i]);
if (itemp > iMaxCount)
{
iMax = pArray[i];
iMaxCount = itemp;
}
}
printf("This machine can hold up %d missles\n", iMaxCount);
free(pArray);
system("pause");
return 0;
}[/CODE]


世界上总共有 10 种人,一种懂得什么是二进制 ,一种不懂。
2006-04-25 10:06
zgwxwn
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2006-4-24
收藏
得分:0 

太复杂了吧 有点 我都晕了 不过还是要谢谢


coding & enjoying
2006-04-25 12:40
aogun
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:638
专家分:0
注 册:2006-4-5
收藏
得分:0 
晕,其实不复杂的,总共100行不到,真正的算法也就是其中一半左右,另外一半是分析输入的

世界上总共有 10 种人,一种懂得什么是二进制 ,一种不懂。
2006-04-25 13:09
gaga
Rank: 1
等 级:新手上路
威 望:2
帖 子:307
专家分:0
注 册:2006-4-5
收藏
得分:0 

明天的明天还有明天。 可是今天却只有一个。 public Copy from 无缘今生
2006-04-25 13:32
独孤求败
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-4-25
收藏
得分:0 
楼主是北理的吧!
2006-04-25 17:13
tianyi1
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2006-4-20
收藏
得分:0 
8楼的是北理的吧

2006-04-25 22:40
zgwxwn
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2006-4-24
收藏
得分:0 

啊 你连这都知道 你怎么知道的?快说!呵呵


coding & enjoying
2006-04-26 11:35
快速回复:C程序拦截导弹
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022477 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved