c语言程序编写:数组元素移动
*7.8数组元素移动成绩:100/折扣:0.8请编写函数fun,函数的功能是:移动一维数组中的内容;若数组中有n个整数,要求把下标从0到p(含p,p小于等于n-1)的数组...
* 7.8数组元素移动
成绩: 100 / 折扣: 0.8
请编写函数fun, 函数的功能是: 移动一维数组中的内容; 若数组中有n个整数, 要求把下标从0到p(含p,p小于等于n-1)的数组元素平移到数组的最后。 例如, 一维数组中的原始内容为: 1,2,3,4,5,6,7,8,9,10; p的值为3。移动后, 一维数组中的内容应为: 5,6,7,8,9,10,1,2,3,4。
部分源程序如下:
#include <stdio.h>
#define N 80
void fun(int *w, int p, int n)
{ //只需要完成此部分功能即可
}
int main( )
{
int a[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
int i,p,n=15;
scanf("%d",&p);
fun(a,p,n);
for(i=0; i<n; i++)
printf("%3d",a[i]);
printf("\n");
return 0;
} 展开
成绩: 100 / 折扣: 0.8
请编写函数fun, 函数的功能是: 移动一维数组中的内容; 若数组中有n个整数, 要求把下标从0到p(含p,p小于等于n-1)的数组元素平移到数组的最后。 例如, 一维数组中的原始内容为: 1,2,3,4,5,6,7,8,9,10; p的值为3。移动后, 一维数组中的内容应为: 5,6,7,8,9,10,1,2,3,4。
部分源程序如下:
#include <stdio.h>
#define N 80
void fun(int *w, int p, int n)
{ //只需要完成此部分功能即可
}
int main( )
{
int a[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
int i,p,n=15;
scanf("%d",&p);
fun(a,p,n);
for(i=0; i<n; i++)
printf("%3d",a[i]);
printf("\n");
return 0;
} 展开
展开全部
向左移动
#include <stdio.h>
void blue(int *a,int n,int move)
{
int j,save,i;
for(i=0;i<move;i++)
{
save=*a;
for(j=0;j<n-1;j++)
{
*(a+j)=*(a+j+1);
}
*(a+n-1)=save;
}
}
void main()
{
int a[6]={1,2,3,4,5,6},turn,move;
printf("请输入要向前移动的位数:");
scanf("%d",&move)
blue(a,6,move);
for(turn=0;turn<6;turn++)
{
printf("%d ",a[turn]);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
void fun(int *w, int p, int n)
{ //具体指针分配内存和释放什么的就没有写,很久没有用C编写了
int i,*a,*x;
for(i=0;i<=p;i++){
a[i]=w[i];
x[i]=w[n-p+i];
w[i]=x[i];
w[n-p+i]=a[i];
}
}
{ //具体指针分配内存和释放什么的就没有写,很久没有用C编写了
int i,*a,*x;
for(i=0;i<=p;i++){
a[i]=w[i];
x[i]=w[n-p+i];
w[i]=x[i];
w[n-p+i]=a[i];
}
}
追问
抱歉,您的回答不对。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
void fun(int *w,int p,int n)
{
int i,a[N];
for(i=p;i<=n-p;i++)
a[i]=w[i];
for(i=0;i<=p;i++)
a[n-p]=w[i];
}
{
int i,a[N];
for(i=p;i<=n-p;i++)
a[i]=w[i];
for(i=0;i<=p;i++)
a[n-p]=w[i];
}
追问
抱歉,您的回答不对。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询