C语言编写程序,将一维数组中的元素向右循环移动N次

2024-11-23 18:09:07
推荐回答(1个)
回答1:

// #include 去掉
main()
{
int N, a[10], b[10],i,j;
for(i=0;i<10;i++)
{
a[i]=i;
b[i]=0;//增加数据初始化
}
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\nafter: ");
scanf("%d",&N);
N=N%10;
for(i=0;i<10-N;i++) // 只需要截取以为后面的数据个数不是所有的。
b[i]=a[N+i]; // a[10-N+i]数据溢出,范围没有把握好
for(j=0;j<10-N;j++) // 只输出移位后面的数据放到前段了
printf("%d ",b[j]); // b[i] 变量错误
for(i=0;j<10;j++) // 增加前面的数据移动到后面
printf("%d ",b[j]=a[i++]); // 变量错误
getch();
}
//只在你的基础上改下,