



这个是出现什么问题了,有些就是对的,但是那个31的那个输出到一的时候就没我停止,这个应该怎么修改一下呢
根据平台提示,应该是数组越界了,即输入的正整数n的变化数字序列的个数超出了数组a的长度,所以将数组a的大小定义为一个较大的值即可,比如1000。
修改如下:
#include <stdio.h>
int main(void){
// 根据提示,应该是当输入的正整数n的数字变化序列的个数,超出了数组a的长度,导致数组越界了
// 所以,可以将数组a的大小定义为一个较大的值,比如1000
int n,a[1000],i=1,count=0;
scanf("%d",&n);
a[0]=n;
while(n!=1){
if(n%2==1)
n=n*3+1;
else
n=n/2;
a[i]=n;
i++;
count++;
}
for(int j=count;j>=0;j--){
printf("%d ",a[j]);
}
return 0;
}
