/*标题
等差数列
类别
数组
时间限制
2S
内存限制
1000Kb
问题描述
请写一个程序,判断给定整数序列能否构成一个等差数列。
输入说明
输入数据由两行构成,第一行只有一个整数n(n<100),表示序列长度(该序列中整数的个数);
第二行为n个整数,每个整数的取值区间都为[-32768~32767],整数之间以空格间隔。
输出说明
对输入数据进行判断,不能构成等差数列输出“no”,能构成等差数列输出表示数列公差(相邻两项的差)的绝对值的一个整数。
输入样例
样例1输入
6
23 15 4 18 35 11
样例2输入
5
2 6 8 4 10
输出样例
样例1输出
no
样例2输出
2*/
#include<stdio.h>
#include<math.h>
int main()
{
int s[101],n,i,temp,j,k=0,p=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&s[i]);
}
for(i=0;i<n-1;i++)//对数组进行排序 (冒泡排序)
{
for(j=0;j<n-i-1;j++)
{
if(s[j]>s[j+1])
{
temp=s[j];
s[j]=s[j+1];
s[j+1]=temp;
}
}
}
for(i=0;i<n-2;i++)//判断是否等差
{
if(s[i+1]-s[i]!=s[i+2]-s[i+1])
{
k++;//flag
break;
}
}
if(k!=0)
{
printf("no");
}
if(k==0) printf("%d",s[1]-s[0]);
}```
2021-10-26//等差数列
最新推荐文章于 2024-01-09 10:58:19 发布