早教吧 育儿知识 作业答案 考试题库 百科 知识分享

C语言编程题目2卡布列克运算问题描述所谓卡布列克运算是指对任意一个四位数,只要它们各个位上的数字不完全相同,就有这样的规律:(1)把组成这个四位数的四个数字重新生成最

题目详情
C语言编程
题目2 卡布列克运算
问题描述
所谓卡布列克运算是指对任意一个四位数,只要它们各个位上的数字不完全相同,就有这样的规律:
(1)把组成这个四位数的四个数字重新生成最大的四位数;
(2)把组成这个四位数的四个数字重新生成最小的四位数(若四个数字中含有0,则此四位数可小于四位);
(3)求出以上两位数之差,得到一个新的四位数。
重复以上过程,总能得到最后的结果是6174。
例如当输入1008后,会输出以下结果:
8100-18=8082
8820-288=8532
8532-2358=6174
试编写卡布列克运算的验证程序。
算法分析
根据题意,此问题可被分成以下三个模块来解决:
(1) 将一个四位数的每一位数字按从大到小(或从小到大)的顺序放到一个一维数组中;
(2) 将(1)中有序数组从左到右(或从右到左)组合成一个最大的四位数;
(3) 将(1)中有序数组从右到左(或从左到右)组合成一个最小的四位数;
▼优质解答
答案和解析
#include "stdio.h"
void fun(int n, int a[4])
{
int i,j,temp;
for(i=0;i<4;i++)
{
a[i]=n%10;
n=(n-a[i])/10;
}
for(j=0;j<3;j++)
{
for(i=0;i{
if(a[i]>a[i+1])
{
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
}
}
void main()
{
int num,max,min,i;
int array[4];
printf("Input a number with 4 digitals:");
scanf("%d",&num);
while(num!=6174)
{
max=0;
min=0;
fun(num,array);
for(i=0;i<4;i++)
{
min=min*10+array[i];
max=max*10+array[3-i];
}
num=max-min;
}
printf("Verified");
}
看了 C语言编程题目2卡布列克运算...的网友还看了以下:

描写下雨的成语描写人悲伤的成语形容刻苦学习的与戏曲有关的描写下雨的成语描写人悲伤的成语形容刻苦学习  2020-05-22 …

印制电路板按导电层的分布划分有哪些类别?印制电路板有哪些部分组成?描述各部攻能  2020-06-24 …

某中学地理兴趣小组对其宿舍楼前后十棵广玉兰树开花时间进行了观察和记录。读广玉兰分布位置和太阳视运动  2020-07-08 …

图为某国略图(左图示意该国等高线分布,右图示意该国主要城市分布).读图,完成下列各题.(1)描述该  2020-07-31 …

下图为我国某区域等温线图,读图完成下列各题。(1)描述图中7月份等温线的分布特征,并指出图中1月等温  2020-11-02 …

阅读图文资料,完成下列各题。(13分)干燥度是指可能蒸发量与降水量之比,表示气候的干燥程度。下图示意  2020-11-05 …

(2014•莱芜)南水北调工程2014年建设目标:中线如期通水,东线运行平稳.读材料,完成下列各题.  2020-11-05 …

读图完成下列各题.(1)据甲图描述台湾的海陆位置:.(2)读乙图,台湾岛的铁路分布特点是,形成这种分  2020-11-10 …

(8分)下图分别示意某国局部地区自然要素与人口、城市分布。读图并结合所学知识完成下列各题。(1)A水  2020-11-23 …

阅读下面的文字,完成文后各题。耶路撒冷大学的研究人员日前首次公布了《老鼠骨骼断层扫描图》,图中清晰地  2020-12-17 …