
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;
} 展开
#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;
} 展开
3个回答
展开全部
while(n++ < l){
scanf("%d",s+n);
}
问题在这。
n<l 判断完毕后 执行n++ 所以你第一个数其实是付给了s[1]而不是s[0]
我觉得n++最好不要乱用 可读性差 还容易出错
scanf("%d",s+n);
}
问题在这。
n<l 判断完毕后 执行n++ 所以你第一个数其实是付给了s[1]而不是s[0]
我觉得n++最好不要乱用 可读性差 还容易出错
展开全部
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");
}
}
{
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");
}
{
if(2*s[i] == s[i+1] + s[i-1])
{ if(i==l-2) printf("yes");
else
continue;
}
else
printf("no");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询