C++新手求解= =

#include<iostream>
#include<cmath>
using namespace std;
bool flag[1000];
int a[1000];
int n,sum,i,j;
int main()
{
cin>>n;
sum=0;
for(i=1;i<=1000;i++)
{
flag[i]=false;
}
for(i=1;i<=n;i++)
{
cin>>a[i];
flag[a[i]]=true;
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
if(i!=j&&flag[abs(a[i]-a[j])]==true&&abs(a[i]-a[j])!=a[i]&&abs(a[i]-a[j])!=a[j])
{
sum++;
}
}
}
cout<<sum/4;
return 0;
}

为毛这样就CE了?

6 条评论

  • @ 2018-04-20 21:24:09

    看到评论区其他人的回答,我知道,我的机会来了:
    小同学,我们通过编辑可以看到问题是出现在abs上面
    我们再看到你的**头文件**,用的是cmath,但abs应使用algorithm库

    可编译代码
    #include<iostream>
    #include<algorithm>
    using namespace std;
    bool flag[1000];
    int a[1000];
    int n,sum,i,j;
    int main()
    {
    cin>>n;
    sum=0;
    for(i=1;i<=1000;i++)
    {
    flag[i]=false;
    }
    for(i=1;i<=n;i++)
    {
    cin>>a[i];
    flag[a[i]]=true;
    }
    for(i=1;i<=n;i++)
    {
    for(j=1;j<=n;j++)
    {
    if(i!=j&&flag[abs(a[i]-a[j])]==true&&abs(a[i]-a[j])!=a[i]&&abs(a[i]-a[j])!=a[j])
    {
    sum++;
    }
    }
    }
    cout<<sum/4;
    return 0;
    }

  • @ 2018-04-20 14:36:00

    #include<iostream>
    using namespace std;
    int main()
    {
    int num;
    cin>>num;
    int number[num];
    bool numb[num];
    int count=0;
    for(int i=0;i<num;i++)
    {
    cin>>number[i];
    numb[i]=false;
    }
    for(int i=0;i<num && numb[i]==false;i++)
    {
    for(int j=0;j<num;j++)
    {
    if (j==i) continue;
    for(int k=j+1;k<num;k++)
    {
    if(k==i) continue;
    if(number[i]==(number[j]+number[k]))
    {
    count++;
    numb[i]=true;
    break;
    }
    }
    if(numb[i]==true) break;
    }
    }
    cout<<count;
    return 0;
    }

  • @ 2017-02-04 19:40:14
    // input code here
    ```#include<iostream>
    #include<cstdio>
    using namespace std;
    int a[102],k[102]={0};
    int main()
    {
       int n,m,p=0;
       cin>>n;
       for(int i=1;i<=n;i++)
         cin>>a[i];
       for(int i=1;i<=n;i++)
         for(int j=i+1;j<=(n-i);j++)
        {
            m=a[i]+a[j];
            for(int l=1;l<=n;l++)
             if(a[l]==m)
             k[l]=1;
        }
       for(int i=1;i<=n;i++)
         if(k[i]==1)
          p++;
       cout<<p;
       return 0;
    }
    
  • @ 2016-11-18 14:21:28

    #include <iostream>
    using namespace std;

    int a[101], c;
    bool b[101];

    int main()
    {
    int n, i, j, k;
    cin>>n;
    for (i=1; i<=n; i++)
    cin>>a[i];

    for (i=1; i<=n; i++)
    for (j=2; j<=n; j++)
    for (k=1; k<j; k++)
    if (a[i]==a[j]+a[k])
    b[i]=1;

    for (i=1; i<=n; i++)
    if (b[i]==1)
    c++;

    cout<<c<<endl;
    }

  • @ 2016-09-28 07:43:02

    首先要把头文件放在两行啊……第二include前面是要打#的
    ```c++
    #include<iostream>
    #include<cmath>

    using namespace std;
    bool flag[1000];
    int a[1000];
    int n, sum, i, j;
    int main()
    {
    cin >> n;
    sum = 0;
    for (i = 1; i <= 1000; i++)
    {
    flag[i] = false;
    }
    for (i = 1; i <= n; i++)
    {
    cin >> a[i];
    flag[a[i]] = true;
    }
    for (i = 1; i <= n; i++)
    {
    for (j = 1; j <= n; j++)
    {
    if (i != j&&flag[abs(a[i] - a[j])] == true && abs(a[i] - a[j]) != a[i] && abs(a[i] - a[j]) != a[j])
    {
    sum++;
    }
    }
    }
    cout << sum / 4;
    return 0;
    }
    ```

  • @ 2016-09-26 13:12:28
    #include <cstdio>
    #include <cstring>
    using namespace std;
    bool hash[20001];
    int a[1001],n,ans = 0;
    int main()
    {
      //freopen("count.in","r",stdin);
      //freopen("count.out","w",stdout);
      scanf("%d",&n);
      memset(hash,false,sizeof(hash));
      for (int i = 1;i <= n;i++)
        scanf("%d",&a[i]);
      for (int i = 1;i <= n;i++)
        for (int j = 1;j <= n;j++)
        {
          if(i == j) continue;
          hash[a[i]+a[j]] = true;
        }
      for (int i = 1;i <= n;i++)
        if(hash[a[i]]) 
          ans++;
      printf("%d",ans);
      return 0;
    }
    
  • 1

信息

ID
1911
难度
6
分类
(无)
标签
递交数
17038
已通过
4511
通过率
26%
被复制
27
上传者