用c语言编写一程序,接收从键盘上输入的整数i,将数组循环左移i位

例如有数组:1,2,3,4,5,6.输入的i值为2,则移动结果为3,4,5,6,1,2.。... 例如有数组:1, 2, 3, 4, 5, 6.输入的i值为2,则移动结果为3,4,5,6,1,2.。 展开
 我来答
龍__鳳
推荐于2018-03-14 · TA获得超过2347个赞
知道小有建树答主
回答量:948
采纳率:0%
帮助的人:1512万
展开全部

# include"stdio.h"

void main()

{

int a[10]={1,2,3,4,5,6,7,8,9,10},b[10];

int i,j,k;

printf("移位前: ");

for(k=0;k<10;k++)

printf("%d ",a[k]);

printf("\n");

printf("Input i: ");

scanf("%d",&i);

j=i%10;

for(k=0;k<10;k++)

{

if(j==10)

j=0;

b[k]=a[j++];

}

for(k=0;k<10;k++)

a[k]=b[k];

printf("移位后: ");

for(k=0;k<10;k++)

printf("%d ",a[k]);

printf("\n");

}

985967518
推荐于2016-02-03 · 知道合伙人教育行家
985967518
知道合伙人教育行家
采纳数:18027 获赞数:109908
14年本科毕业于河南理工大学,至今就读于河南理工大学攻读硕士学位,从事编程学习已有5年。

向TA提问 私信TA
展开全部

思路:可以定义两个数组a和b,以及整数i,数组a用来存放原始数据,数组b用来存放移动过后的数据,依次把a的第i位到结束位置的数存放到b中,再把a的0位置到i位置数存放到b中,最终的b就是数组循环左移i位的最终结果。

//参考代码:
#include<math.h>
#include<stdio.h>
int main()
{
int a[6]={1,2,3,4,5,6},b[6],i,j;
i=2;
for(j=0;j<6;j++){
b[j]=a[(i+j)%6];
}
for(j=0;j<6;j++)
printf("%d ",a[j]);
printf("\n");
for(j=0;j<6;j++)
printf("%d ",b[j]);
return 0;
}
/*
输出: 
1 2 3 4 5 6
3 4 5 6 1 2
*/
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kaixingui2012
2013-05-18 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:7765万
展开全部
#include <stdio.h>

int main()
{
int a[]={1,2,3,4,5,6};
int n,i,len=6;
//输入数n
scanf("%d" , &n);
//左移n次
for ( i=0;i<n;i++)
{
int t=a[0] ,j; //保存首位
for( j=1;j<len;j++ ) //将数组从第二位开始左移
a[j-1]=a[j] ;
a[len-1]=t ; //原首位放到最后一位
}
//输出
for ( i=0;i<len;i++)
printf("%d " , a[i] );
printf("\n");
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式