C语言:判断数组中是否有两个数的和等于某定值。

某组织欲破获一个外星人的密码,密码由一定长度的字串组成。此组织拥有一些破译此密码的长度不同的钥匙,若两个钥匙的长度之和恰好为此密码的长度,则此密码被成功破译。现在就请你编... 某组织欲破获一个外星人的密码,密码由一定长度的字串组成。此组织拥有一些破译此密码的长度不同的钥匙,若两个钥匙的长度之和恰好为此密码的长度,则此密码被成功破译。现在就请你编程找出能破译此密码的两个钥匙。

【标准输入】
第一行: N N为钥匙的个数(1<=N<=1000)
第二行: L L为密码的长度
以下有N行: Ai 每一行是一把钥匙的长度 i=1,2,……,N
【标准输出】
若无法找到破译此密码的钥匙,则输出0
若找到两把破译的钥匙,则输出文件有两行,分别为两把钥匙的编号,按从小到大输出。若有多种破译方案,则只输出包含起始编号最小的一组即可。
展开
 我来答
yao541978
2010-11-08 · 超过20用户采纳过TA的回答
知道答主
回答量:65
采纳率:0%
帮助的人:0
展开全部
int main()
{
int N=1000;//钥匙个数
int L=500;//密码长度
int i,j;
int A[1000];//钥匙数组
int label=0;
//用循环去判断这个数组里的任意两个相加是否满足等于密码值,用label=1标记“找到了”,跳出两层循环,输出找到。当label等于默认值0时,标记没找到。
for(i=0;i<N;i++)
{
for(j=i+1;j<N;j++)
{
if(A[i]+A[j]==L)
{
label=1;
break;
}
}
if(label==1)
{
break;
}
}
if(label==1)
{
printf("Find the answer.");
}
else
{
printf("No answer.");
}
return 0;
}

这个程序不能运行,因为没有给出数组里面每个钥匙的值。只要赋值之后便可运行。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式