体检癌胚抗原是什么:这个C语言程序怎么写?

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/11 04:00:23
一个数组中存放了n个整数(全是个位整数),要求把数组移动n-m位,把移动m位之后的数放到数组前,例如 1234 移动2 位,新的数组位3412

main()
{
int a[100];
int m,t,k,n,i;

clrscr();/*清屏*/
printf("How many number do you want input?\n");
scanf("%d",&n);
printf("Please input %d number.\n",n);
for(i=0;i<n;i++)
scanf("%d",a+i);
printf("m=");
scanf("%d",&m);
for(k=0;k<m;k++){
t=a[n-1];
for(i=n-1;i>0;i--)
a[i]=a[i-1];
a[0]=t;
}
printf("After move:");
for(i=0;i<n;i++)
printf("%4d",a[i]);
flushall();/*清空缓冲区*/
getch();/*按任意键返回*/
}

如果对空间复杂度没要求,就用一个辅助数组。
如果对空间复杂度要求为O(1),对时间复杂度没要求的话,清蒸水皮的方法虽然太裸了点,也还是可以的。
如果楼主是在做数据结构课后习题的话,那题目肯定对空间和时间复杂度都要求很严格,俺也忘了怎么做了。

再定义一个数组,然后将第一个数组中的数移动到第二个数组中。