【c】数组元素移动
2023-12-14 18:56:30
本题的难点之处就是不让你创建新的数组,而且移动的距离也没有给限制,比如有7个数,本题没有限制必须移动距离小于7,也可能移动的距离大于7,甚至更多,下面·附上我的代码
#include<stdio.h>
int main()
{
int n,b;
scanf("%d %d",&n,&b);
int arr[n];
for(int i=0;i<n;i++)
{
scanf("%d",&arr[i]);
}
if(n>b)
{
for(int i=n-b;i<n;i++)
{
printf("%d ",arr[i]);
}
for(int i=0;i<n-b;i++)
{
if(i==n-b-1)
printf("%d",arr[i]);
else
printf("%d ",arr[i]);
}
}
if(b>n)
{
b=b%n;
for(int i=n-b;i<n;i++)
{
printf("%d ",arr[i]);
}
for(int i=0;i<n-b;i++)
{
if(i==n-b-1)
printf("%d",arr[i]);
else
printf("%d ",arr[i]);
}
}
return 0;
}
不能创建数组保存,那为什么不能直接打印,打印肯定也是先打印后面移动到前面的数,在打印前面移动到后面的数,我们只需要分清情况就好了
我的代码还是有些臃肿,for循环本来可以不加if,但是为了配合条件,最后一个输出的数字不能带空格,只好又加if了
欢迎各位大佬指出不足之处,谢谢
文章来源:https://blog.csdn.net/2301_80108815/article/details/134931403
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!