Problems A.请写一个程序,判断给定整数序列能否构成等差数列
输入说明:多组数据,每组输入数据由两行构成,第一行只有一个整数n(<1000),
表示序列长度(即序列中整数的个数,0表示输入结束),第二行为n个整数,
每个整数的取值区间都为[-32768----32767] -> (int),整数之间以空格或挑格间隔。
输出说明:对于每一组数据,输出一个yes或no,表示该序列能否构成等差数列。
输入样本:
6
23 15 4 18 35 11
3
3 1 2
0
输出样本:
no
yes
分析:
因为每组数据长度不同,数据组数也是动态变化,所以选择动态数据结构链表保存是否为等差数列
思路:
- 输入数据
- 给数据排序
- 计算等差d
- 遍历数据差距d是否相等
- 若输入0 输出链表结点值(0代表no 1代表yes)
/*
Problems A.请写一个程序,判断给定整数序列能否构成等差数列
输入说明:多组数据,每组输入数据由两行构成,第一行只有一个整数n(<1000),
表示序列长度(即序列中整数的个数,0表示输入结束),第二行为n个整数,
每个整数的取值区间都为[-32768----32767] -> (int),整数之间以空格或挑格间隔。
输出说明:对于每一组数据,输出一个yes或no,表示该序列能否构成等差数列。
输入样本:
6
23 15 4 18 35 11
3
3 1 2
0
输出样本:
no
yes
*/
#include<stdio.h>
#include<stdlib.h>
typedef struct node{
int key;//0表示no 1表示yes
struct node *next;
}Linklist;
int main(void){
int n;
int i,j;
Linklist *head,*p,*q; //由于数据组数为动态 选用带头结点的链表存储
h