我的作业是制作一个允许用户输入无限的程序 一组数字直到输入0 ,打印最小和最大的数字,并说明它们是奇数还是偶数。
除了如何允许用户根据需要输入尽可能多的号码以及如何启动它之外,我对所有事情感到满意。我应该使用循环还是其他方法?
请注意我上周才开始学习Java,所以语言 unfamilliar
非常感谢!
答案 0 :(得分:4)
除了如何允许用户根据需要输入尽可能多的号码以及如何启动它之外,我对所有事情感到满意。我应该使用循环还是其他方法?
因为这是一个家庭作业,你可能不希望我们为你做功课。这就是你能做的:
do{
//prompt user for input
//prompt user to continue (y/n)
//if 'n' was given
//proceed = false;
}while(proceed);
您可以使用 do-while 或 while 循环。您现在可以无限地提示用户输入,直到他们决定停止。
更新1 :(根据问题的变化)
终止条件:当收到0作为输入时:
do{
//prompt user for integer input
//if (input == 0)
//break; (exit loop)
//store input
}while(input != 0);
答案 1 :(得分:0)
***尽量自己动手。仅供参考。
我知道不应该放弃代码,因为它适用于你的任务。如果你没有获得输出,请使用(理解和学习)。
int n=0,temp=0,z=0,i=0,j=0;
int []a=new int[1000]; //as size is not given by user assign the array with a much greater value
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //Object for BufferedReader class used for reading elements
do{
System.out.print("Enter the number:");
a[n]=Integer.parseInt(br.readLine()); //String to integer conversion
n++;
System.out.println("Do you want to enter more numbers(0/1):");
z=Integer.parseInt(br.readLine());
}while(z!=0);
//Sorting
for(i=0;i<n;i++){
for(j=i+1;j<n;j++){
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
//Now after sorting the smallest number will be in the first location ie;
//"0" so inorder to check it is even or odd we take check its remainder when it is divided by 2.
if(a[0]%2==0){
System.out.println("The smallest number is : "+ a[0] + " & the number is even");}
else{
System.out.println("The smallest number is : "+ a[0] + " & the number is odd");}
if(a[n-1]%2==0){
System.out.println("The largest number is : "+ a[n-1] + " & the number is even");}
else{
System.out.println("The largest number is : "+ a[n-1] + " & the number is odd");}
示例输出如下: