首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

循环右移的有关问题

2012-04-01 
循环右移的问题#includestdio.hmain(){voidturn(int*array,intn,intm)intnintmprintf( Inputnumbers

循环右移的问题
#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指向哪里???

热点排行