|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
#include<math.h>
int main()
{
int a[100],n,m=0,b;
scanf("%d",&n);
if(n==1){
printf("Jolly");
return 0;
}
else{
for(b=0;b<n;b++){
scanf("%d",&a[n]);
printf("%d ",a[n]);
}
for(b=0;b<n;b++){
printf("%d %d\n",fabs(a[b]-a[b+1]),n-1-b);
if(fabs(a[b]-a[b+1])==n-1-b){
m++;
}
printf("%d",m);
if(m==n-1){
printf("Jolly");
return 0;
}
}
printf("Not jolly");
return 0;
}
}
问题出在这里:
应该是:
在第一个循环中,应该使用 b 作为数组 a 的索引,而不是 n 。由于 n 是输入的整数, a[n] 实际上是数组 a 中的第 n 个元素,而不是循环中的当前元素。这会导致输入的值被放到数组 a 之后的位置,而不是期望的位置。这个错误会导致后续计算绝对值时出现错误。
另外,还有一个小错误是在第二个循环中,循环条件应该是 b<n-1 而不是 b<n ,因为在循环体中使用了 a[b+1] ,需要确保不会访问数组越界。
|
|