#include stdio.h
创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站制作、成都做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的达拉特网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
void insert(int a[],int n,int x,int k) //将数字X插入到已有n个元素的数组a中第k个位置
{for(int i=n;i=k;i--)
a[i]=a[i-1];
a[k-1]=x;
}
int main()
{int i,n,x,k,a[100];
printf("原有几个数字:");
scanf("%d",n);
for(int i=0;in;i++)
a[i]=i+1;
printf("原有的数字:\n");
for(int i=0;in;i++)
printf("%d ",a[i]);
printf("\n");
printf("要插入的数字:");
scanf("%d",x);
printf("要插到第几个位置:");
scanf("%d",k);
insert(a,n,x,k);
printf("插入后的数字:\n");
for(int i=0;in+1;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
int main()
{
char a[100],b[100],*x,*y;
int i;
printf("输入字符串1:");
scanf("%s",a);
printf("输入字符串2:");
scanf("%s",b);
printf("将字符串1插入到字符串2的第几个字符后:");
scanf("%d",i);
x=a;
y=b+i;
while((*y++=*x++)!='\0');
printf("%s",b);
return 0;
}
将一个无符号数的特定位置1,方法很简单,只需要定义个宏就可以实现,如下:#define SET_BIT(val, bit) ((val) | (0x1 (bit)))其中val是无符号数,bit是要置1的指定位;同理可以实现一个将无符号数的特定位清0的宏,如下:#define CLR_BIT(val, bit) ((val) ~(0x1 (bit)))
调用宏,如下: bit = 1; val = SET_BIT(val, bit);
假如将A第三位赋给B第二位
对于C51架构单片机,可使用位寻址:
bdata A, B;
sbit a3 = A^3; //位变量指向A第三位
sbit b2 = B^2;
b2 = a3;
对于其他任何类型单片机,可使用位操作宏(同样适用于C51):
#define get_bit(var, n) (var (1n))
#define set_bit(var, n) (var |= (1n))
#define clr_bit(var, n) (var = ~(1n))
使用方法
if(get_bit(A, 3))set_bit(B, 2);
else clr_bit(B, 2);
这是速度最快的方法。移位操作在编译的时候已经被优化了。