作者在 2012-10-29 12:33:39 发布以下内容
/*
*有n个整数,使前面各数顺序向后移动m个位置,最后m个数变成最前面m个数
*/
#include <stdio.h>
#include <stdlib.h>
int *f(int *p, int n, int m);
int main(){
int array[10] = {2,9,8,0,7,6,5,3,4,1};
int *q, i;
printf("原来的数组:n");
for(i=0; i!=10; i++){
printf("%4d", array[i]);
}
printf("n");
q = f(array, 10, 3);
for(i=0; i!=10; i++){
array[i] = *(q+i);
}
printf("n");
printf("调整后的数组:n");
for(i=0; i!=10; i++){
printf("%4d", array[i]);
}
printf("n");
return 0;
}
int *f(int *p, int n, int m){
int *r, i;
int cnt = 0;
r = (int*)malloc(sizeof(int)*10);
for(i=n-m; i<n; i++){
*(r+cnt++) = *(p+i);
}
for(i=0; i<n-m; i++){
*(r+cnt++) = *(p+i);
}
return r;
}
*有n个整数,使前面各数顺序向后移动m个位置,最后m个数变成最前面m个数
*/
#include <stdio.h>
#include <stdlib.h>
int *f(int *p, int n, int m);
int main(){
int array[10] = {2,9,8,0,7,6,5,3,4,1};
int *q, i;
printf("原来的数组:n");
for(i=0; i!=10; i++){
printf("%4d", array[i]);
}
printf("n");
q = f(array, 10, 3);
for(i=0; i!=10; i++){
array[i] = *(q+i);
}
printf("n");
printf("调整后的数组:n");
for(i=0; i!=10; i++){
printf("%4d", array[i]);
}
printf("n");
return 0;
}
int *f(int *p, int n, int m){
int *r, i;
int cnt = 0;
r = (int*)malloc(sizeof(int)*10);
for(i=n-m; i<n; i++){
*(r+cnt++) = *(p+i);
}
for(i=0; i<n-m; i++){
*(r+cnt++) = *(p+i);
}
return r;
}