判断给定整数序列能否构成等差数列

该程序旨在判断给定的整数序列是否能构成等差数列。输入包括多组数据,每组数据包含序列长度n和n个整数。输出根据序列是否等差决定,输出'yes'或'no'。解决方案是通过链表动态存储序列,排序后计算等差值,并遍历检查所有相邻元素间的差距是否一致。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

分析:

因为每组数据长度不同,数据组数也是动态变化,所以选择动态数据结构链表保存是否为等差数列

思路:

  1. 输入数据
  2. 给数据排序
  3. 计算等差d
  4. 遍历数据差距d是否相等
  5. 若输入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
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值