读书人

循环右移的有关问题

发布时间: 2012-04-01 17:23:46 作者: rapoo

循环右移的问题
#include <stdio.h>
main(){
void turn(int *array, int n, int m);
int n;
int m;
printf ( "Input numbers: ");
scanf( "%d ", &n);
int array[n];
printf ( "Input numbers M: ");
scanf( "%d ", &m);
turn(array, n, m);
printf ( "\n ");
for (int i=0; i <n; i++){
printf ( "%d\n ", *(array+i));
}
}
void turn(int array[], int n, int m){
int *p;
int i;
int *copy;
printf ( "copy1=%o\n ", copy);
p=array;
for (i=0; i <n; i++){
printf ( "===%d=== ", n);
scanf ( "%d ", array++);
printf ( "!\n ");
*(copy+i)=*(array-1);//运行到这里就有问题了
printf ( "---%d--- ", i);
//printf ( "%d\n ", *(copy+i));
//printf ( "%d\n ", *(array-1));
}
printf ( "---%d--- ", m);
printf ( "===%d=== ", n);
for (i=0; i <n; i++){
if(i+m> =n){
*(p+(i+m-n))=*(copy+(i));
}
else {
printf ( "---%d--- ", m);
*(p+i+m)=*(copy+i);
}
}
}
当输入n <9时都是正确的.可是9以上就不能输入了 *(copy+i)=*(array-1);//运行到这里就有问题了 我解决不了了 请各位帮帮看看


[解决办法]
当然有问题,你在没有分配的空间上搞什么捏?
copy指向哪里???

读书人网 >C++

热点推荐