#include<iostream>
using namespace std;
int count(float v[100],int n)
{
int i,nr=0;
float m;
m=(v[0]+v[n-1])/2;
for(i=0;i<n;i++)
if(v[i]>=m)
nr++;
return nr;
}
int main()
{
int i,n,ok=0;
float v[100];
cin>>n;
for(i=0;i<n;i++)
cin>>v[i];
if(v[0]==v[n-1])
ok=1;
if(count(v,n)==2 && ok==1)
cout<<"YES";
else
if(ok==0 && count(v,n)==1)
cout<<"YES";
else
cout<<"NO";
}
このプログラムは、配列内の最初と最後の数字が、それぞれの配列にある最小値であるかどうかをチェックすると思われます。これは、タイトルが示すように、数値を最初と最後の数値の算術平均と比較することによって行われます
問題は、そうではないということです。どのような値を入力しても、「NO」のみが表示されます (これらの数値が最小ではないことを意味します)。何百回も経験しましたが、何が問題なのか本当にわかりません...どんな助けもいただければ幸いです。