java程序,实现任意输入10个整数,倒着顺序输出数字
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java程序,实现任意输入10个整数,倒着顺序输出数字相关的知识,希望对你有一定的参考价值。
代码如下:已经考虑到输入错误的情况,输入的不是整数或者是字母需要重新输入。
import java.util.Scanner;public class Test
public static void main(String [] args)
int[] arr = new int[10];
for (int i = 0; i < arr.length; i++)
System.out.print("请输入第"+(i+1) + "个数字:");
arr[i] = input();
System.out.println("输入完毕。\\r\\n输入结果如下:");
for (int i = 0; i < arr.length; i++)
System.out.print(arr[i] + "\\t");
System.out.println("\\r\\n倒序输出:");
for (int i = arr.length-1; i >= 0; i--)
System.out.print(arr[i] + "\\t");
public static int input()
int x = Integer.MIN_VALUE ;
try
x = new Scanner(System.in).nextInt();
catch(Exception e)
System.out.print("\\r\\n输入错误,请重新输入。");
x = input();
return x;
追问
排除错误的那一段看不太懂,能帮忙解释下吗?谢~
确实你考虑的比较完整。
追答排错是这样的,因为输入的时候有可能手一抖按错了,将数字按成了字母,然后打了回车输入进去,但是这个时候因为我是使用int类型去接受的,这样肯定接受不了,正常情况下JVM会给你报异常,具体是什么异常你可以自己试一下,我的代码里就直接用一个最大的异常来捕获了。捕获到异常,说明输入错了,那么我就在那里先进行提示,然后再让用户重新输入。这样。直到输入的是能接受的int类型的数字,那么就返回这个数字。
我在input这个方法里其实就是递归了一下而已。
为什么有一个MIN_VALUE?
追答这个你完全可以忽略,这只是属于编程习惯,我是给x的默认值为int类型的最小值而已。因为局部变量不赋值的话不能使用,所以有这么一句,这里你可以改成0或者-1或者9999,只要在int类型的范围之内都没关系的。
参考技术A import java.util.Scanner;public class Demo001
public static void main(String[] args)
System.out.println("请输入10个数,以空格隔开:");
Scanner scaner = new Scanner(System.in);
String strInput = scaner.nextLine();
String a[] = strInput.split(" ");
for (int i = 0; i < a.length; i++)
System.out.print(a[a.length - i - 1] + " ");
运行结果:
追问是顺序相反,数字本身不用反
你这段程序,如果有数字输入98,则输出为89。。
追答我的数字变了吗?你真搞笑。
import java.util.Scanner;
public class Dg
public static void main ( String[] args )
Scanner scanner = new Scanner (System.in);
int count = 0;
String line = null;
String string = "";
while (count < 10 && null != ( line = scanner.nextLine () ))
string += line + "|";
count++;
scanner.close ();
String[] result = string.split ("\\\\|");
for ( int i = result.length - 1; i >= 0; i-- )
System.out.print (result[i] + " ");
参考技术C import javax.swing.JOptionPane;
public class ReverseString
public static void reverseString (String str)
StringBuffer stringBuffer = new StringBuffer (str);
System.out.print(stringBuffer.reverse());
public static void main (String args[])
String originalString;
originalString = JOptionPane.showInputDialog("Please input a String: ");
reverseString (originalString);
写一函数对输入的一组整数由小到大排序,在main主函数调用该函数实现排序。(输入任意个整数即可输出
写一函数对输入的一组整数由小到大排序,在main主函数调用该函数实现排序。(输入任意个整数即可输出结果,好像有点难)
没有百度到合适的答案,等大神。
#include <stdio.h>
void sort(int a[], int n)
int i,j,t;
for(j=0;j<n-1;j++)
for(i=0;i<n-1-j;i++)
if(a[i] > a[i + 1])
t=a[i];a[i]=a[i+1];a[i+1]=t;
int main()
int a[1000];
int i,n=0;
printf("请输入一组整数,以负数表示输入结束:\\n");
scanf("%d",&a[0]);
while(a[n]>=0)
scanf("%d",&a[++n]);
sort(a,n);
for (i=0;i<n;i++)
printf("%d ", a[i]);
printf("\\n");
getch();
追问我在c4droid上报错怎么回事
可能是c4的问题吧
参考技术A http://blog.163.com/asm_c/blog/static/24820311320116106320659/参考。 参考技术B 重点在于如何结束。
必须约定结束条件。追问
随便,比如换行结束
加0结束都可以
追答#include <stdio.h>#include <stdlib.h>
void int_sort(int *a, int l)
int i, j;
for(i = 0; i < l-1; i ++)
for(j = i+1; j < l; j ++)
if(a[i]>a[j])
int t = a[i];
a[i] = a[j];
a[j] = t;
int main()
int *a;
int t = 10;
int i = 0;
a = (int*)malloc(sizeof(int)*t);
while(1)
if(scanf("%d",a+i)!=1)break;
i++;
if(t == i)
t+=10;
a = (int *)realloc(a, sizeof(int)*t);
t = i;
int_sort(a,t);
for(i = 0; i < t; i ++)
printf("%d,",a[i]);
printf("\\n");
free(a);
return 0;
在刚才换行结束的基础上,随便改动一下,就是这个输入非法字符结束的了。
以上是关于java程序,实现任意输入10个整数,倒着顺序输出数字的主要内容,如果未能解决你的问题,请参考以下文章
写一函数对输入的一组整数由小到大排序,在main主函数调用该函数实现排序。(输入任意个整数即可输出