给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字

例如原数为321,应输出123(要求用java的while语句循环)

# include <stdio.h>
void main()
{
int n;
int i;
int temp;
int count=0;
int a[10];
printf("输入一个不多于5位的整数:\n");
scanf("%d",&n);
temp=n;
while(temp!=0)
{
a[count++]=temp%10;
temp/=10;
}
printf("%d是%d位数...\n各位数分别是:",n,count);
for(i=0;i<count;i++)
{
printf("%d ",a[i]);
}
printf("\n");
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-10-29
百位除以100,十位除10模10,个位模10,每位数字不就出来了。。。
第2个回答  2012-11-01
public static void main(String[] args) {
int num = 91684;
String str = String.valueOf(num);// 转为string : 1,为了得到长度,2为分割单个字符
//几位数
str.length();

int[] nums = new int[str.length()];
for (int i = 0; i < nums.length; i++) {
if (i < nums.length - 1) {
nums[i] = Integer.parseInt(str.substring(i, i + 1));
} else {
nums[i] = Integer.parseInt(str.substring(i));
}
}

int i = 0;
while(i<nums[i].length){
System.out.println(nums[i]);//分别输出每一位数字
}

/**按逆序输出各位数字*/
i = 0;
while (i < nums.length - 1) {// 最多做n-1趟排序
int j = 0;
/* 对当前无序区间score[0......length-i-1]进行排序(j的范围很关键,这个范围是在逐步缩小的) */ while (j < nums.length - i - 1) {
if (nums[j] > nums[j + 1]) { // 把小的值交换到后面
int temp = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = temp;
}
j++; }
i++; }
i = 0;
while (i < nums.length) {
System.out.println(nums[i]);
i++; }
}
这个是不是你想要的呢?
相似回答