对口单招c语言,江苏省对口单招C语言讨论帖。

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

/*-------------------------------------------------------

【程序改错】

---------------------------------------------------------

题目:函数unsigned delbits(unsigned x,unsigned p,unsigned n)

把非负整数x从左端第p(p>1)位开始的n位删除,形成新的数

返回。

例如:若x为12345,p为3,n为2,形成新的数为125。

若x为12345,p为6,n为2,形成新的数为12345。

若x为12345,p为3,n为4,形成新的数为12。

请改正程序中的错误,使它能得出正确的结果。

---------------------------------------------------------

注意:不得增行或删行,也不得更改程序的结构。

--------------------------------------------------------*/

#include

unsigned delbits(unsigned x,unsigned p,unsigned n)

{

int a[10],i,j,k;

i=0;

while(x)

{

/*******************FOUND*******************/

a[i]=x%10;

x/=10;

}

k=i;

for(i=0;i

{

a[i]+=a[k-i-1];

a[k-i-1]=a[i]-a[k-i-1];

a[i]=a[i]-a[k-i-1];

}

j=p-1;

/*******************FOUND*******************/

for(i=p+n;i<=k-1;i++)

{

a[j]=a[i];

j++;

}

k=j;

for(i=0;i

/*******************FOUND*******************/

x+=a[i]*10;

return x;

}

int main()

{

unsigned x,p,n;

printf("Input x(unsigned int):\n");

scanf("%u",&x);

printf("Input p(unsigned int):\n");

scanf("%u",&p);

printf("Input n(unsigned int):\n");

scanf("%u",&n);

x=delbits(x,p,n);

printf("After deleting x=%u\n",x);

return 0;

}

答案:

1). a[i++]= x%10; 或 a[i]=x%10,i++; 或 a[i]=x%10,++i; 或 a[i]=x%10,i=i+1; 或 a[i]=x%10,i=1+i; 或 a[i]=x%10,i+=1; 或 a[i]=x%10;i++; 或 a[i]=x%10;++i; 或 a[i]=x%10;i=i+1; 或 a[i]=x%10;i=1+i; 或 a[i]=x%10;i+=1;

2). for(i=p+n-1;i<=k-1;i++) 或 for(i=p-1+n;i<=k-1;i++)

3). x=x*10+a[i]; 或 x=10*x+a[i]; 或 x=a[i]+x*10; 或 x=a[i]+10*x;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值