数组位置求不来了?

cai68132140 2008-06-12 08:50:48
package S1java.sg.chap8;
import java.util.*;
class A{
public static void main(String[]agrs){
Scanner input=new Scanner(System.in);
int[]a=new int[8];
int min;
System.out.println("请输入8位顾客的积分:");
for(int i=0;i<8;i++){
a[i]=input.nextInt();
}
min=a[0];
for(int index=1;index<8;index++){
if(a[index]<min){
min=a[index];
}
}

System.out.print("本次积分最低的是:"+min+);
}
}




我想请教下,我算出最小值后,想知道最小值的所在原始位置?不会了赐教高手们?
...全文
62 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
tavor 2008-06-12
  • 打赏
  • 举报
回复
下标从0开始,你输入的数据你不知道最小的在哪么 ........
cai68132140 2008-06-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 nick6610 的回复:]
class A
{

public static void main(String[] agrs)
{
Scanner input = new Scanner(System.in);
int[] a = new int[8];
int min;
System.out.println("请输入8位顾客的积分:");
for (int i = 0; i < 8; i++)
{
a[i] = input.nextInt();
}
min = a[0];
int count=0;//在用一个变量记录数组下标
for (int index = 1; index < 8; index++)
{
if (a[index] < min)
{
min = a[index];
coun…
[/Quote]




楼4的,不是说下标是从0开始的吗?如果index+1的话,就是位置为6了,而楼1的位置是5.哪个对啊!!!
shuwenling 2008-06-12
  • 打赏
  • 举报
回复
有两种解决办法:
一.在查找最小值的时候就加一索引值;
二.在查找到最小值时,再将数组遍历一次,查出最小值的位置.
一般,我经常用第一种方法.
这是我的个人意见.
dracularking 2008-06-12
  • 打赏
  • 举报
回复
有限数据只要记录最小值位置不必像我6楼那样 ls都ok
dracularking 2008-06-12
  • 打赏
  • 举报
回复
初始保留一个key value的映射关系
找到最小值后检索之
相同value不同key就要根据排序逻辑进行附加判断

如果无重复value 具体实现可以参考inversed key-value entrySet

Map map = new HashMap();
map.put(300, 3); //value and key
map.put(100, 1); //value and key
map.put(200, 2); //value and key
System.out.print(map.entrySet());


否则选择范围就更大了 即使是自构造的String
laorer 2008-06-12
  • 打赏
  • 举报
回复
楼上已经说了,不过 如果用你的方法也可以,只不过多了一个记录最小值的index,也可以查完之后,再轮循一遍,找最小值 ,但没有楼上的直接
nick6610 2008-06-12
  • 打赏
  • 举报
回复
class A
{

public static void main(String[] agrs)
{
Scanner input = new Scanner(System.in);
int[] a = new int[8];
int min;
System.out.println("请输入8位顾客的积分:");
for (int i = 0; i < 8; i++)
{
a[i] = input.nextInt();
}
min = a[0];
int count=0;//在用一个变量记录数组下标
for (int index = 1; index < 8; index++)
{
if (a[index] < min)
{
min = a[index];
count=index+1;//因为下标从0开始,所以这里加了1
}
}

System.out.print("本次积分最低的是:" + min);
System.out.println("是第"+count+"位用户");
}
}
vstian 2008-06-12
  • 打赏
  • 举报
回复
1楼正解!! 贴重了。。。
vstian 2008-06-12
  • 打赏
  • 举报
回复

package S1java.sg.chap8;
import java.util.*;
class A{
public static void main(String[]agrs){
int x = 0;
Scanner input=new Scanner(System.in);
int[]a=new int[8];
int min;
System.out.println("请输入8位顾客的积分:");
for(int i=0;i <8;i++){
a[i]=input.nextInt();
}
min=a[0];
for(int index=1;index <8;index++){
if(a[index] <min){
min=a[index];
x = index;
}
}

System.out.print("本次积分最低的是:"+min+",其位置为:"+x);
}
}

tavor 2008-06-12
  • 打赏
  • 举报
回复
稍微改一下就可以了,我们不记录最小值,我们记录最小值的索引位置就可以了


package S1java.sg.chap8;
import java.util.*;
class A{
public static void main(String[]agrs){
Scanner input=new Scanner(System.in);
int[]a=new int[8];
int minIndex;
System.out.println("请输入8位顾客的积分:");
for(int i=0;i <8;i++){
a[i]=input.nextInt();
}
minIndex=0;
for(int index=1;index <8;index++){
if(a[index] <a[minIndex]){
minIndex=index;
}
}

System.out.print("本次积分最低的是:"+a[minIndex]+",其位置是:"+minIndex);
}
}
nick6610 2008-06-12
  • 打赏
  • 举报
回复
我就是感觉说:是第0位用户~~不太好听嘛~~~

58,453

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧