0
已解决
王睿卿
高级守护
高级守护
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int n;
cin>>n;
int a[n];
int flag=1;
int i,j;
for(i=0;i<n;i++)
{
cin>>a[i];
}
int x[100];
for(i=0;i<n-1;i++)
{
if(abs(a[i])<abs(a[i+1]))
{
x[i]=abs(a[i+1])-abs(a[i]);
}
else
{
x[i]=abs(a[i])-abs(a[i+1]);
}
}
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(x[i]>x[j])
{
swap(x[i],x[j]);
}
}
}
for(i=0;i<n-2;i++)
{
if(x[i]+1==x[i+1])
{
flag=1;
}
else
{
flag=0;
}
if(flag==0)
{
cout<<"Normal";
return 0;
}
}
cout<<"Amazing";
return 0;
}
0
已采纳
贾敬波
高级守护
高级守护
出现了两个问题:
第一:你的排序写的不对啊,前面x[i]是0到n-1的,排序时候的是0到n的;
第二:判断flag的时候不需要判断等于1的情况啊,只要判断等于0就够了。
是否可以考虑写成以下情况
if(x[i]+1!=x[i+1])
{
cout<<"Normal";
return 0;
}
0
0
梁锦程
高级光能
高级光能
for(i=1;i<n;i++)
b[i]=abs(a[i]-a[i+1]);
sort(b+1,b+n);
for(i=1;i<n;i++)
if(b[i]!=i)
{
cout<<"Normal";
return 0;
}
cout<<"Amazing";
0