初学java中的一道练习题
从键盘输入3个整数,分别赋给整型变量a,b,c,然后将输入的整数按照从小到大的顺序放在变量a,b,c中,并输出三个变量的值。这是题目我是刚学java现在学到运算符和基本选...
从键盘输入3个整数,分别赋给整型变量a,b,c,然后将输入的整数按照从小到大的顺序放在变量a,b,c中,并输出三个变量的值。
这是题目 我是刚学java现在学到运算符和基本选择结构那里了 这个题 不会做 谁能帮忙 给个代码 参考一下 展开
这是题目 我是刚学java现在学到运算符和基本选择结构那里了 这个题 不会做 谁能帮忙 给个代码 参考一下 展开
3个回答
展开全部
简单的冒泡排序。
思想如下。 a b c 3个数字。 确保A最小,C最大。
就分别比较他们3个。
先比较A和B 如果A比B大就替换位置。A变成B,B变成A。如果A比B小就不变。
同理比较A和C。这样A就能是3个里面最小的数字了。
最后在比较B和C。就能确认B是除了A之外最小的数字。(这种比较方法适用于更长的数字集合噢)
鉴于你是初学者,就用最基本的语句。下面是代码
输入部分就不写了
int a = 数字1;
int b = 数字2;
int c = 数字3;
if( a > b){
//这个位置需要一个临时变量来记录需要变换的数字。
int temp = a;
a = b;
b = temp;
// ok a和b比较成功。
}
if( a > c){
//这个位置需要一个临时变量来记录需要变换的数字。
int temp = a;
a =c;
c = temp;
// ok a和c比较成功。
}
if( b > c){
//这个位置需要一个临时变量来记录需要变换的数字。
int temp = b;
b =c;
c = temp;
// ok b和c比较成功。
}
这3个步骤就能完成了。
接下来分别输出a b c就行了。
细心的话 你可以发现 这3个步骤完全一样。所以可以简化到一个循环里。
希望你可以自己完成
纯手工。希望加分!
思想如下。 a b c 3个数字。 确保A最小,C最大。
就分别比较他们3个。
先比较A和B 如果A比B大就替换位置。A变成B,B变成A。如果A比B小就不变。
同理比较A和C。这样A就能是3个里面最小的数字了。
最后在比较B和C。就能确认B是除了A之外最小的数字。(这种比较方法适用于更长的数字集合噢)
鉴于你是初学者,就用最基本的语句。下面是代码
输入部分就不写了
int a = 数字1;
int b = 数字2;
int c = 数字3;
if( a > b){
//这个位置需要一个临时变量来记录需要变换的数字。
int temp = a;
a = b;
b = temp;
// ok a和b比较成功。
}
if( a > c){
//这个位置需要一个临时变量来记录需要变换的数字。
int temp = a;
a =c;
c = temp;
// ok a和c比较成功。
}
if( b > c){
//这个位置需要一个临时变量来记录需要变换的数字。
int temp = b;
b =c;
c = temp;
// ok b和c比较成功。
}
这3个步骤就能完成了。
接下来分别输出a b c就行了。
细心的话 你可以发现 这3个步骤完全一样。所以可以简化到一个循环里。
希望你可以自己完成
纯手工。希望加分!
追问
我 会是会了 可是 你说的 可以简化到一个 循环里 但是 我 却 做不到 希望 指导一下 另外 希望 可以 跟你 做个 朋友 我Q2 7 0 7 02391
追答
循序渐进,问题先留着呗。你才学运算符,等学了数组。就知道怎么弄了。
学编程不能什么都指望别人把逻辑告诉你。自己写写看,就发现。其实很简单。
展开全部
public static void main(String[] args) {
int a, b, c; // 定义3个整形变量
Scanner scan = new Scanner( System.in ); // 使用扫描器快捷获取系统输入
a = getInt(scan);
b = getInt(scan);
c = getInt(scan);
{ // 排序操作
List<Integer> ints = Arrays.asList( a, b, c ); // 转换成集合对象
Collections.sort(ints); // 使用已有的API进行排序(默认升序)
Iterator<Integer> iter = ints.iterator(); // 使用迭代器依次读取排序后的整数
a = iter.next(); b = iter.next(); c = iter.next();
}
System.out.println("a="+a +" b="+b +" c="+c); // 输出3个整形变量的值
}
private static int getInt(Scanner scan){ // 使用扫描器获取一个整数
for(;;){
if(scan.hasNextInt()){
return scan.nextInt();
}else{
scan.next(); // skip
}
}
}
int a, b, c; // 定义3个整形变量
Scanner scan = new Scanner( System.in ); // 使用扫描器快捷获取系统输入
a = getInt(scan);
b = getInt(scan);
c = getInt(scan);
{ // 排序操作
List<Integer> ints = Arrays.asList( a, b, c ); // 转换成集合对象
Collections.sort(ints); // 使用已有的API进行排序(默认升序)
Iterator<Integer> iter = ints.iterator(); // 使用迭代器依次读取排序后的整数
a = iter.next(); b = iter.next(); c = iter.next();
}
System.out.println("a="+a +" b="+b +" c="+c); // 输出3个整形变量的值
}
private static int getInt(Scanner scan){ // 使用扫描器获取一个整数
for(;;){
if(scan.hasNextInt()){
return scan.nextInt();
}else{
scan.next(); // skip
}
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不会,真的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询