C语言 下标法和指针法的比较

编程序将一维数组中元素向右循环移N次。要求用下标法和指针法两种方法实现例如元素为0,1,2,3,4,5,6,7,8,9,10位移3次后变成8,9,10,0,1,2,3,4... 编程序 将一维数组中元素向右循环移N次。要求用下标法和指针法两种方法实现
例如 元素为0,1,2,3,4,5,6,7,8,9,10位移3次后变成8,9,10,0,1,2,3,4,5,6,7。

==========================
下标法
#include<stdio.h>
void main()
{
int a[11]={0,1,2,3,4,5,6,7,8,9,10};
int N;
int i,j,temp;

printf("Please input N: \n");
scanf("%d",&N);

for(i=0;i<N;i++)
{
temp=a[10];
for(j=10;j>=1;j--)
{
a[j]=a[j-1];
}
a[0]=temp;
}

printf("After Move: \n");
for(i=0;i<11;i++) printf("%d ",a[i]);

}

==========================
下标法

#include<stdio.h>
void main()
{
int a[11]={0,1,2,3,4,5,6,7,8,9,10};
int N;
int i,j,temp;

printf("Please input N: \n");
scanf("%d",&N);

for(i=0;i<N;i++)
{
temp=*(a+10);
for(j=10;j>=1;j--)
{
*(a+j)=*(a+j-1);
}
*a=temp;
}

printf("After Move: \n");
for(i=0;i<11;i++) printf("%d ",*(a+i));

}
写错了 第二个是指针法
=============================
感觉指针法只是用指针代替了数组而已啊 没看出有点在哪
展开
 我来答
meern50
2010-11-25 · TA获得超过467个赞
知道答主
回答量:257
采纳率:100%
帮助的人:156万
展开全部
#include<stdio.h>
int main(void)
{int a[10],i,j,n,t;
printf("Input N:");
scanf("%d",&n);
/*Input array a*/
for(i=0;i<10;i++)a[i]=i+1;
/*Move array a*/
for(i=1;i<=n;i++)
{t=a[9];
for(j=8;j>=0;j--)
{a[j+1]=a[j];
}
a[0]=t;
}
/*Output array a*/
printf("Right Moveing %d :\n",n);
for(i=0;i<10;i++)
printf("%d,",a[i]);
return 0;
}

你拿这个程序试一试看看吧! 我也没调试过;直接就写给你了,
要是有什么程序写的不足的话,,,,最起码编写思想你得提取一下咯~!
171******13
2010-11-23
知道答主
回答量:17
采纳率:0%
帮助的人:0
展开全部
这个无关重要
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
世令秋U6
2010-11-22
知道答主
回答量:21
采纳率:0%
帮助的人:16.4万
展开全部
?没必要深究这个问题吧 对于指针的理解不应该在这种地方去看 应该多考虑它在函数调用过程中 对于值与址的影响才是实质
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式