作业帮 > 综合 > 作业

找和为K的两个元素 (数组题)C语言

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/07/26 21:21:00
找和为K的两个元素 (数组题)C语言
在一个长度为n(n < 1000)的整数序列中,判断是否存在某两个元素之和为k.
输入要求
第一行输入序列的长度n和k,用空格分开.
第二行输入序列中的n个整数,用空格分开.
输出要求
如果存在某两个元素的和为k,则输出yes,否则输出no.
假如输入
9 101 2 3 4 5 6 7 8 9
应当输出
yes
找和为K的两个元素 (数组题)C语言
#include<stdio.h>
boolean f()
{  
    int i,j,n,k;
    int a[1001];
    scanf("%d%d",&n,&k);
    for(i=0;i<n;i++)
    {
        scanf("%d",a[i]);
        for(j=i-1;j>=0;j--)
            if(a[i]+a[j]==k)
                return true;
    }
    return false;
}
int main()
{
     if(f())
         printf("yes\n");
     else
         printf("no\n");   
 }
再问: 这是什么错误,要怎么改
再答: #include<stdio.h>
int f()
{
\x09int i, j, n, k;
\x09int a[1001];
\x09scanf("%d%d", &n, &k);
\x09for (i = 0; i<n; i++)
\x09{
\x09\x09scanf("%d",&a[i]);
\x09\x09for (j = i - 1; j >= 0; j--)
\x09\x09if (a[i] + a[j] == k)
\x09\x09\x09return 1;
\x09}
\x09return 0;
}
int main()
{
\x09if (f())
\x09\x09printf("yes\n");
\x09else
\x09\x09printf("no\n");
}