从品牌网站建设到网络营销策划,从策略到执行的一站式服务
void fun(int *w, int p, int n)
创新互联建站主要从事成都网站设计、做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务淮上,十年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575
{ //只需要完成此部分功能即可
int b[N],i,j;
for(i = 0; i = p;i++)
{
b[i] = w[i];
}
for(i = 0; p+1+i n;i++)
{
w[i] = w[p+1+i];
}
for(j = 0;j = p;j++)
{
w[i++] = b[j];
}
}
//用一个循环就可以实现数组的循环左移:
int i,n,m;//temp表示左移位数
int a[n];
for(i=0;in-m;i++)a[i]=a[i+m];//此时的数组个数为n-m
思路:
所有数组都移位,那么其中一个元素的值的溢出位将和相邻的元素进行合并,
因此只要记住上一元素的溢出位,在下一元素移动后合并即可。
#define ELEMCNT 3 //定义数组元素个数
char a[ELEMCNT]; //被操作的元素
char exceedA=0,exceedB=0;//记忆溢出位用的变量,其中exceedA为上一元素溢出值,exceedB为本元素溢出值
//定义整体移动函数,其中k为左移位数
void LeftElem(int k){
int i;
char Msk=0;//用于计算溢出位的掩码,如k=6时,其掩码值为00000011(二进制)
for (i=0;i8-k;i++){
Msk=Msk|(1i);
}
//移动所有数组元素,i值对应数组元素下标i-1
for (i=ELEMCNT;i0;i--){
exceedB=(a[i-1](~Msk))(8-k);//计算溢出数据
a[i-1]=a[i-1]k+exceedA;
exceedA=exceedB;
}
}
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图