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));
}
写错了 第二个是指针法
=============================
感觉指针法只是用指针代替了数组而已啊 没看出有点在哪 展开
例如 元素为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));
}
写错了 第二个是指针法
=============================
感觉指针法只是用指针代替了数组而已啊 没看出有点在哪 展开
展开全部
#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;
}
你拿这个程序试一试看看吧! 我也没调试过;直接就写给你了,
要是有什么程序写的不足的话,,,,最起码编写思想你得提取一下咯~!
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;
}
你拿这个程序试一试看看吧! 我也没调试过;直接就写给你了,
要是有什么程序写的不足的话,,,,最起码编写思想你得提取一下咯~!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |