c语言 数组循环移动,如何将一个数组的元素循环左移?
該樓層疑似違規已被系統折疊?隱藏此樓查看此樓
#include?
#include?
#define?SIZE(a)?(sizeof(a)/sizeof(a[0]))
#define?HBIT(a)?((a?&?0x00000080)?!=?0)
#define?LBIT(a)?((a?&?0x00000001)?!=?0)
int?TAB[]?=?{
0x10,?0x71,?0x12,?0x10,?0x10,?0x7C,?0x00,?0x00,
0x00,?0x00,?0x00,?0x3C,?0x42,?0x42,?0x42,?0x04,
0x04,?0x08,?0x10,?0x20,?0x42,?0x7E,?0x00,?0x00,
0x00,?0x00,?0x00,?0x3C,?0x42,?0x42,?0x04,?0x18,
0x04,?0x02,?0x02,?0x42,?0x44,?0x38,?0x00,?0x00,
0x00,?0x00,?0x00,?0x04,?0x0C,?0x14,?0x24,?0x24,
0x44,?0x44,?0x7E,?0x04,?0x04,?0x1E,?0x00,?0x00,
0x00,?0x00,?0x00,?0x7E,?0x40,?0x40,?0x40,?0x58,
0x64,?0x02,?0x02,?0x42,?0x44,?0x38,?0x00,?0x00,
0x00,?0x00,?0x00,?0x1C,?0x24,?0x40,?0x40,?0x58,
0x64,?0x42,?0x42,?0x42,?0x24,?0x18,?0xC0,?0xDE
};
void?Move()
{
int?i,?j,?len;
len?=?SIZE(TAB);
for(i?=?0;?i?
{
j?=?i???(i?-?1)?:?(len?-?1);
if(HBIT(TAB[i])?!=?LBIT(TAB[j]))
TAB[j]?=?(unsigned?int)TAB[j]?^?0X00000001;
TAB[i]?=?(unsigned?int)TAB[i]?<
TAB[i]?=?(unsigned?int)TAB[i]?&?0X000000FF;
TAB[j]?=?(unsigned?int)TAB[j]?&?0X000000FF;
}
printf("%#04X,?%#04X\n",?TAB[0],?TAB[1]);
}
int?main(void)
{
printf("%#04X,?%#04X\n",?TAB[0],?TAB[1]);
while(TAB[0]?!=?0XC0?||?TAB[1]?!=?0XDE)
Move();
system("PAUSE");
return?EXIT_SUCCESS;
}
總結
以上是生活随笔為你收集整理的c语言 数组循环移动,如何将一个数组的元素循环左移?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Flexsim——初学AGV必看的知识点
- 下一篇: Wbe API