C语言编程,输入一数列,判断是否是等差数列并输出结果!程序流程错了,但还没发现具体错在哪,请高手帮忙

#include<stdio.h>#defineMax100intmain(){intn=0;ints[Max];intl;printf("请输入序列长度:");scan... #include<stdio.h>
#define Max 100

int main()
{
int n=0;
int s[Max];
int l;

printf("请输入序列长度:");
scanf("%d",&l);

printf("输入序列各数字:");
while(n++ < l){
scanf("%d",s+n);
}

for(int i=1;i<l-1;i++)
{
while(2*s[i] == s[i+1] + s[i-1])
{
if(i==l-2) printf("yes");
else continue;
}
printf("no");
}

return 0;
}
展开
 我来答
羊三问
2010-12-16 · TA获得超过183个赞
知道小有建树答主
回答量:139
采纳率:0%
帮助的人:99.9万
展开全部
while(n++ < l){
scanf("%d",s+n);
}
问题在这。
n<l 判断完毕后 执行n++ 所以你第一个数其实是付给了s[1]而不是s[0]
我觉得n++最好不要乱用 可读性差 还容易出错
百度网友70f5a8e
2010-12-16 · 超过15用户采纳过TA的回答
知道答主
回答量:35
采纳率:0%
帮助的人:55.2万
展开全部
for(int i=1;i<l-2;i++)
{
if(2*s[i] != s[i+1] + s[i-1])
{
printf("no");
}
else
{
if(i==l-2) printf("yes");
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2010-12-16
展开全部
for(int i=1;i<l-1;i++)
{
if(2*s[i] == s[i+1] + s[i-1])
{ if(i==l-2) printf("yes");
else
continue;
}
else
printf("no");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式