C语言程序,用指针法将一维数组中元素向右循环N次。

 我来答
记忆中的忆记
推荐于2018-03-22
知道答主
回答量:25
采纳率:0%
帮助的人:16.6万
展开全部
#include<stdio.h>
#define N 10
void fun(int *a,int m)
{
int i = 0;
int t = 0;
int temp[N] = {0};
m = m%N;
for(i=0;i<N;i++)
{
temp[i] = *(a+i);
}
for(i=0;i<N;i++)
{
if(i+m<N)
{
*(a+i+m) = temp[i];
}
else
{
*(a+i+m-N) = temp[i];
}
}
}
int main()
{
int a[N] = {0};
int i = 0;
int m = 0;
printf("请输入10个整数:");
for(i=0;i<N;i++)
{
scanf("%d",(a+i));
}
printf("请输入要移动的个数:");
scanf("%d",&m);
fun(a,m);
printf("平移后的结果是:");
for(i=0;i<N;i++)
{
printf("%d ",*(a+i));
}
return 0;
}

不清楚你的具体问题,给你一个相似的例子

挥剑五号
2013-04-27 · TA获得超过317个赞
知道答主
回答量:276
采纳率:0%
帮助的人:50.7万
展开全部
#include <stdio.h>
void swap(int *a,int begin,int end);
int main()
{
int a[10],i,n;
for(i=0;i<10;i++)
{
scanf("%d",a+i);
}
printf("请循环的次数:");
scanf("%d",&n);
n%=10;
n=10-n;
swap(a,0,n-1);
swap(a,n,9);
swap(a,0,9);
for(i=0;i<10;i++)
{
printf("%d",a[i]);
}
return 0;
}
void swap(int *a,int begin,int end)
{
int temp;
for(;begin<end;begin++,end--)
{
temp = *(a+begin);
*(a+begin) = *(a+end);
*(a+end) = temp;
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yuehuawei2011
2013-04-27
知道答主
回答量:65
采纳率:0%
帮助的人:18.5万
展开全部
你这个问题不清不楚,具体点
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式