c语言输入一个4位数 将其各位分离出来,c语言编写程序,从键盘输入一个4位数,将其各位重新拼装后输出。拼装规律为:原4位数的千位为新数的百位;...

该程序使用C语言编写,从用户输入中获取一个4位数,然后按照特定规则重新组合并输出。规则是将原数的千位作为新数的百位,百位作为十位,十位作为个位,个位作为新的千位。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#define BITS 4 /** 定义的多少位数?*/

#define JIN 10 /**用于分解数据值的进制值。*/

/***

* 从标准输入得到输入数值

*/

int getBitsNum(){

int num = 0;

int bound_bottom = pow(JIN,BITS-1) - 1;

int bound_top = pow(JIN,BITS);

printf("请输入一个四位数 n ( %5d < n < %5d) : ",bound_bottom,bound_top);

scanf("%d",&num);

if(numbound_top)return 0;

else return num;

}

/** 打印数字数组用于测试观察!*/

void printBitArray(int *bitArray){

int i = 0;

for(i = 0; i < BITS; i++){

printf("%3d",*(bitArray+i));

}

putchar('\n');

}

/***

* 将数值按相应进制分解并将相应数字值保存到bitArray数组当中。

*/

void toBitArray(int num,int *bitArray){

//int bitArray[BITS] = {0};

int oringnal = num;

int remainder = num;

int order_m = 1;//数量级 order of magnitude

int index = 0;

while(oringnal > order_m){

bitArray[index++] = remainder % JIN;

remainder = remainder/JIN;

order_m *=JIN;

}

}

/***

*

*/

int combNew(int *bitArray){

int i = 0;

int order_m = 1;

int sum = 0;

int temp = 0;

temp = bitArray[3];

bitArray[3] = bitArray[2];

bitArray[2] = temp;

for(i = 0; i < BITS; i++){

sum += (*(bitArray+i))*order_m;

order_m *=JIN;

}

return sum;

}

int main(int argc,char **argv){

int num = 0;

int bitArray[BITS] = {0};

int sum_new = 0;

while((num = getBitsNum())== 0){;}

toBitArray(num,bitArray);

//printBitArray(bitArray);

sum_new = combNew(bitArray);

printf("%5d这个数,可以重组成:%5d\n",num,sum_new);

return EXIT_SUCCESS;

}

/***

* 运行结果:

请输入一个四位数 n ( 999 < n < 10000) : 1234

1234这个数,可以重组成: 2134

*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值