有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数!!我的代码如下:
#include “Stdio.h”
#define size 5
void deal(int *parr[],int n,int m);
void input(int *arr1[],int x,int arr[]);
void output(int *parr[]);
int main(void)
{
int *parr[size];
int arr[size];
int m;
int i;
/*给数组负值*/
printf(“please input %d data:”,size);
for(i=0;i<size;i++)
scanf(“%d”,arr+i);
/* 要处理的个数 */
printf(“please input you want to:”);
scanf(“%d”,&m);
/* 处理过程 */
input(parr,size,arr);
deal(parr,size,m);
output(parr);
getch();
}
void input(int *arr1[],int x,int arr[])
{
int i;
for(i=0;i<x;i++)
*(arr1+i)=arr+i;
}
void deal(int *parr[],int n,int m)
{
int k,j,i;
int **pparr[size];
k=j=m;
for(i=0;i<j;i++) //先处理前M个数
**(pparr+i)=parr+(n-m–);
for(i=0;i<k;i++) //再处理后N-M个数
**(pparr+j++)=parr+i;
}
void output(int *parr[])
{
int i;
for(i=0;i<size;i++)
printf(“%3d”,**(parr+i));
}
我想是DEAL()出问题了,但有不只怎样改,我想改变指针数组的元素的指向,不知道用什么办法好!!请大虾们指教!!
>> 本文固定链接: http://www.vcgood.com/archives/2114
没人吗?
我对你的题目很感兴趣,麻烦你把你的题目说清楚一点,举一个实际的例子行吗?
象这样子:有n=5个数,我使m=2 的话,
原来:1 2 3 4 5
改变后:4 5 1 2 3
这样行不?
无奈!!!
自己顶上十大!!