只有四十分,不知道错在哪求大佬们看看
查看原帖
只有四十分,不知道错在哪求大佬们看看
1224222
Lzm217693楼主2024/1/25 13:47
#include<stdio.h>
int main()
{
    int n=0;
    int flag=0;//冒泡排改动序标记
    scanf("%d\n",&n);
    int number[1000]={0};
    for(int a=0;a<n;a++)
    {
        scanf("%d ",&number[a]);
    }
    for(int a=0;a<n-1;a++)//改进版冒泡排序
    {
        for(int b=0;b<n-a-1;b++)
        {
            flag=0;
            if(number[b]>number[b+1])
            {
                int c=number[b];
                number[b]=number[b+1];
                number[b+1]=c;
                flag=1;
            }
        }
        if(flag==0)
        {
            break;
        }
    }
    int result=0;
    for(int a=n-1;a>=2;a--)//二分查找
    {
        int low=0,high=a-1;
        while(number[high]+number[low]!=number[a])
        {
            low++;
            if(low==high)
            {
                break;
            }
        }
       if( number[high]+number[low]==number[a])
       {
           result++;
       }
    }
    printf("%d",result);
    return 0;
}
2024/1/25 13:47
加载中...