思路是借鑒網上大佬的。代碼是自己寫的。注意那兩個特殊情況。
感覺不需要結構體啊。 标記一下第一個數的位置。然後對他們的絕對值sort一下。
自己多推幾遍找着規律就行。
主要是不要想着螞蟻拐彎。就想着它一直走就行。想明白就完事了。
滿分代碼:
#include <iostream>
#include <cstring>
#include <cmath>
#include <cstdio>
#include <algorithm>
using namespace std;
bool cmp(int a,int b)
{
return abs(a)<abs(b);
}
int main()
{
int n;
int a[101];
cin>>n;
int cntf=0;
int cntz=0;
for(int i=0;i<n;i++)
cin>>a[i];
int fir=a[0];
sort(a,a+n,cmp);
int index=0;
for(int i=0;i<n;i++)
{
if(a[i]==fir)
index=i;
}
// cout<<index<<endl;
for(int i=0;i<index;i++)
if(a[i]>0) cntz++;
// cout<<cntz<<endl;
for(int i=index+1;i<n;i++)
if(a[i]<0) cntf++;
// cout<<cntf<<endl;
if(cntf==0&&fir>0)
cout<<1<<endl;
else if(cntz==0&&fir<0)
cout<<1<<endl;
else
cout<<cntz+cntf+1<<endl;
}