降序排列——对于一个大于3位数的任意整数
/* (程序头部注释开始) </p><p>* 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * 作 者: 李兆庆 * 完成日期: 2012 年 9 月 20 日 * 输入描述: * 问题描述及输出: * 实现功能:对于一个大于3位数的任意整数,输出其降序数。例如,整数82319,则其降序数是98321.* 程序头部的注释结束 */import javax.swing.JOptionPane;public class Num { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub String str=JOptionPane.showInputDialog("请输入一个大于三位数的整数"); int w = str.length(); System.out.println("您输入的数字位数为:"+w); int a = Integer.parseInt(str); System.out.println("您输入的数字为:"+a); sort( a, w); } static void sort(int n ,int m){ int s = 1,k=0; int [] a = new int [m]; for (int i = 1; i < m; i++) { s = s*10; } k = s; //将s的值保存下来,最后获得目标数字时使用。 for (int i = 0; i < m; i++) //将输入数的各个位数对应的数值分别存放在a数组中。 { a[i] = n / s; n = n % s; s = s / 10; // System.out.print(" "+x) } for (int i = 0; i < m ; i++) //将数组中的元素进行由高到低的排序 { for (int j = 0; j < m-1; j++) { int t; if (a[j] < a[j+1]) { t = a[j]; a[j] = a[j + 1]; a[j + 1] = t; } } } int e = 0; for (int i = 0; i< m; i++) //得到降序后的目标数字。 { e = e +a[i]*k; k=k/10; //System.out.println(e); } System.out.println("降序数为:"+e); System.out.println(m); } } 