要求用户输入10个数,每个数只输入一次,求出其中的2个最大值,各位来做做看,看谁的最简单。
解决方案 »
- 今天突然发现这个问题,自己解决不了,求大侠看看!
- javamail 如何结合iamp协议实现客户定制邮箱?
- 求C/S 结构 数据处理思路?
- 救命啊!IE:this application has requested the runtime to terminate it in an unusual way
- !!!!!!!!小弟初学JAVA 有一些小小问题,请高手用通俗语言能给我讲解一下吗????????????
- 请问朋友:你认为哪本java图书比较适合你自己学习??
- 请问怎么把一个image实例编码成jpg格式的BufferedImage!
- 环境调试
- 有没有人使用JCreator?为什么增加了JSP的语法,在编辑JSP文件时,对象点不开方法???
- 如何写一个获取cup利用率的java程序?
- 关于IO流问题,怎样用另一种方式去实现,请指教。
- java中怎么在panel或applet上输出一个像素点
{
int i, k;
int max = 0, second_max = 0;
int num[10];
for (i = 0; i < 10; i++) {
scanf("%d", &k);
num[i] = k;
if (k > max)
max = k;
}
for (i = 0; i < 10; i++)
if (num[i] > second_max && num[i] != max)
second_max = num[i];
printf("The largest two are: %d, %d", max, second_max);
system("pause");
}
int a[]={3,4,2,6,5,8,7,9,1,0};
int temp=0;
int flag=0;
for(int i=0;i<10;i++)
{
temp=a[i];
for(int t=i+1;t<10;t++)
{
if(temp>a[t])
{
}
else
{
temp=a[t];
flag=t;
}
a[flag]=a[i];
a[i]=temp;
}
}
System.out.println("It's: "+a[0]+" and "+a[1]);
import java.io.*;
public class Bigger { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
long max = -65536L;
long bigger = -65536L;
String inputStr = "";
long inputLong = 0;
int iter = 0;
while(iter<5){
System.out.print("input "+(iter+1)+" num :");
try{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
inputStr = br.readLine();
inputLong = Long.parseLong(inputStr);
if(inputLong >= max){
bigger = max;
max = inputLong;
}
iter++;
}catch(Exception e){
e.printStackTrace();
}
}
if(max==bigger)
{
System.out.println("The two value is the same :"+max);
}
else{
System.out.println(max);
System.out.println(bigger);
}
}}java输入比其他语言费事。
import java.io.InputStreamReader;
public class Bigger {
public static void main(String[] agrs){
long max = Long.MIN_VALUE;
long max2 = Long.MIN_VALUE;
for(int i = 0; i < 10; i++){
try{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String inputStr = br.readLine();
long tmpLong = Long.parseLong(inputStr);
if(tmpLong >= max){
max2 = max;
max = tmpLong;
} else if(tmpLong > max2){
max2 = tmpLong;
}
}catch(Exception e){
e.printStackTrace();
}
}
System.out.println("The biggest one is " + max);
System.out.println("The one next to biggest is " + max2);
}
}略改了下楼上的代码,对最大和次大的判断略有修改。
{
public static void main(String[] args)
{
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
int max=0;
int maxer=0;
for(int i=0;i<10;i++)
{
System.out.println("please enter the "+(i+1)+" number:");
try{
String s=in.readLine();
int compare=Integer.parseInt(s);
if(max<compare)
{
max=compare+max;
compare=max-compare;
max=max-compare;
}
if(maxer<compare)
{
maxer=compare+maxer;
compare=maxer-compare;
maxer=maxer-compare;
}
}catch(NumberFormatException e1){}
catch (IOException e2){}
}
System.out.println("max "+max+"\nmaxer "+maxer);
}
}
Min
Max
每进一位判断如果小于Min则去掉,大于Min再判断是否大于Max,大于Max则把Max赋值给Min,此数替换Max,否则此数换替Min.
------
-_-
好像替麻烦,只是想与上面的不同.哈哈
先输入二个数
把大的给s1,小的给s2
再输入其余8个数
每个数与s1 s2比较
如果sn比s1大
把sn给s1 s1给s2
如果sn比s2大就把sn给s2
否则扔了直接全部输入完毕
这样是不是得出二个大数了?
:)
int main()
{ int i=0;
cin>>i;
if(i>0) //输入的数为整数或大于零
{
double Array[i];
for(int j=0;j<2;j++)
{
cout<<"请输入第"<<j+1<<"个数:" ;
cin>>Array[j];
cout<<endl;
}
double maxest=Array[1]>=Array[0]?Array[1]:Array[0];
double maxer=Array[1]<=Array[0]?Array[1]:Array[0]; //用Array[0]和Array[1]初使化maxest和maxer
for(int j=2;j<i;j++)
{
double t;
cout<<"请输入第"<<j+1<<"个数:" ;
cin>>Array[j];
if(Array[j]>maxest)
{
t=maxest;
maxest=Array[j];
maxer=t;
}
else if(Array[j]>maxer)
{
maxer=Array[j];
}
cout<<endl;
}
cout<<"maxest="<< maxest<<endl;
cout<<"maxer="<< maxer<<endl;
return 0;
}
else
cout<<"比较的数的个数应该大于零或至少为整数!"<<endl;
return 0;
}
好像就是楼上人所说的算法,晕死了
你可以把int设置为系统最小的整数,谢谢.JAVA可以直接设置
其次,只所以调整为nlogn 是看到了13楼的要求...不能有重复输入
谢谢.
你个丑男
{
int i, k;
int max = 0, second_max = 0;
for (i = 0; i < 10; i++) {
scanf("%d", &k);
if (k > second_max)
second_max = k;
if(second_max > max)
max = second_max;
}
printf("The largest two are: %d, %d", max, second_max);
}修改4楼的没试过差不多吧
public class Compare{
public static void main(String[] args){
int max=0;
int second=0;
Scanner scanner=new Scanner(System.in);
int[] arr=new int[10];
for(int i=0;i<10;i++)
arr[i]=scanner.nextInt();
for(int i=0;i<10;i++){
if(arr[i]>max)
max=arr[i];
}
for(int j=0;j<10;j++){
if((arr[j]!=max)&&(arr[j]>second))
second=arr[j];
}
System.out.println("max is: "+max);
System.out.println("second is: "+second);
}
}
偶是新手,呵呵
double max1=sz[0],max2=0;
for(int n=1;n<10;n++){
if(sz[n]>=max1){
max2=max1;
max1=sz[n];
}
}
max1最大,max2第二结束