|
发表于 2016-4-28 20:51:27
|
显示全部楼层
本帖最后由 zxc123qwe 于 2016-4-29 11:07 编辑
觉得你先定义两个数组,一个作要输入的数据,一个作保护数据
看了之后又写了个代码;写的不好,主要是想探讨学习一下,那种能一键复制代码的,我不会,还望见谅,如果你会,可以留言教我一下。谢谢!
/*这个程序基本能用,输入部分我给标注掉了,可以自己加上,
大致思想是定义两个一样的数组,一个输入,一个作保护数组数据,
算法上的思想是未覆盖的作一组处理,被覆盖的用引用的数组加以赋值还原,
在偏移量上负数不纳入判定范围,偏移量>=9时,就是偏移量0-8的循环,程序没写出。
还有很多要修正的毛病可以改改,帮我完善一下*/
#include <stdio.h>
int main ()
{
int i, m, j = 0, t, str[9]={1,2,3,4,5,6,7,8,9},a[9]={1,2,3,4,5,6,7,8,9};
#if(0) printf ("??????哈哈哈?????: ");
printf("请输入9个数:");
for (i = 0; i < 9; i++)
{ str[i+2*m-9]=a[j];
scanf ("%d",&str[i]);
}
#endif
printf("输入偏移量:");//这里偏移量范围是(0-9)
scanf("%d",&m);
for (i = 0;i < m;i++)
{
if(i+m< 9)
{
str[i+m] = str[i];
}
else
{
str[i+m-9]=str[i];
}
}
for(i=m;i<9;i++,j++)
{
if(i+m<9)
{
str[i+m]=a[m+j];
}
else
{
str[i+m-9]=a[m+j];
}
}
for (i = 0,j=0; i < 9,j<9;j++, i++)
{
printf("%d",str[i]);
printf ("\t");
}
return 0;
}
|
|