数位分解并重组再筛选统记并排序.docxVIP

  • 5
  • 0
  • 约7.86千字
  • 约 7页
  • 2019-03-17 发布于江苏
  • 举报
【解题思路】本题要求将已知数按十进制位拆分并重组成两个两位数后,依照一定的判断条件筛选统计后再按大小进行排序。依照题意,应从数组a中依次取出每一个四位数,按十进制位拆分并重组后,按题干中给出的判断条件(新组成的两个数ab-cd=0且ab-cd=10且两个数均是奇数,同时两个新数的十位数字均不为零,即ab-cd=0ab-cd=10ab%2==1cd%2==1a4!=0a1!=0)筛选后,符合条件的四位数存入数组b中,同时计数器变量cnt加1,最后用选择法将数组b中的四位数排序。 【参考答案】 void jsVal() { int i,j; /* 定义变量 */ int a1,a2,a3,a4; int ab,cd; int temp; for(i=0;iMAX;i++) { a1=a[i]%10; /* 数位分解 */ a2=a[i]%100/10; a3=a[i]%1000/100; a4=a[i]/1000; ab=a4*10+a2; /* 数位重组 */ cd=a1*10+a3; if(ab-cd=0ab-cd=10ab%2==1cd%2==1 a4!=0a1!=0) /* 判断条件 */ b[cnt++]=a[i]; } for(i=0;icnt-1;i++) /* 选择法排序 */ for(j=i+1;jcnt;j++) if(b[i]b[j]) { temp=b[i]; b[i]=b[j]; b[j]=temp; } } 【解题思路】本题要求将已知数按十进制位拆分并重组成两个两位数后,依照一定的判断条件筛选统计后再按大小进行排序。依照题意,应从数组a中依次取出每一个四位数,按十进制位拆分并重组后,按题干中给出的判断条件(两个新组成的数均为奇数并且至少有一个数能被5整除,同时两个新数的十位数字均不为零,即ab%2==1cd%2==1(ab%5==0||cd%5==0)a4!=0a3!=0)筛选后,符合条件的四位数存入数组b中,同时计数器变量cnt加1,最后用选择法将数组b中的四位数排序。 【参考答案】 void jsVal() { int i,j; /* 定义变量 */ int a1,a2,a3,a4; int ab,cd; int temp; for(i=0;iMAX;i++) { a1=a[i]%10; /* 数位分解 */ a2=a[i]%100/10; a3=a[i]%1000/100; a4=a[i]/1000; ab=a4*10+a1; /* 数位重组 */ cd=a3*10+a2; if(ab%2==1cd%2==1(ab%5==0||cd%5==0) a4!=0a3!=0) /* 判断条件 */ b[cnt++]=a[i]; } for(i=0;icnt-1;i++) /* 选择法排序 */ for(j=i+1;jcnt;j++) if(b[i]b[j]) { temp=b[i]; b[i]=b[j]; b[j]=temp; } } 【解题思路】本题要求将已知数按十进制位拆分并重组成两个两位数后,依照一定的判断条件筛选统计后再按大小进行排序。依照题意,应从数组a中依次取出每一个四位数,按十进制位拆分并重组后,按题干中给出的判断条件(新组成的两个数ab-cd=10且ab-cd=20且两个数均是偶数,同时两个新数的十位数字均不为零,即ab-cd=10ab-cd=20ab%2==0cd%2==0a4!=0a1!=0)筛选后,符合条件的四位数存入数组b中,同时计数器变量cnt加1,最后用选择法将数组b中的四位数排序。 【参考答案】 void jsVal() { int i,j;

文档评论(0)

1亿VIP精品文档

相关文档