前提・実現したいこと
整数a,b,cを入力し、2番目に大きいものを表示しなさい。
ただし、a,b,c以外の変数は使わないこと。
例)
整数 a を入力してください。>3
整数 b を入力してください。>12
整数 c を入力してください。>8
3 12 8 の2番目は、8です。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
問題文そのまますぎるw
回答3件
0
ベストアンサー
変数が3つなので3! = 6個のif文でできます。
Java
1import java.util.Scanner; 2 3public class Main { 4 public static void main(String[] args){ 5 6 Scanner sc = new Scanner(System.in); 7 int a = sc.nextInt(); 8 int b = sc.nextInt(); 9 int c = sc.nextInt(); 10 11 if(a > b){ 12 a += b; 13 b = a - b; 14 a -= b; 15 } 16 if(a > c){ 17 a += c; 18 c = a - c; 19 a -= c; 20 } 21 if(b > c){ 22 b += c; 23 c = b - c; 24 b -= c; 25 } 26 27 System.out.println(b); 28 } 29}
投稿2018/05/11 02:57
編集2018/05/11 07:32退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/11 03:10
> ただし、a,b,c以外の変数は使わないこと。
↑この制約下でソートは難しいにゃー
2018/05/11 03:43
jsだとこんな感じかにゃー
var mid = (a,b,c,s=(a,b)=>{return [a<b?a:b,a<b?b:a];})=>{
return (!([a,b]=s(a,b)))||(!([a,c]=s(a,c)))||(!([b,c]=s(b,c)))||b;
}
2018/05/11 04:07
↑これは「s」を定義しちゃってるから、こっちのほうがいいにゃー
var mid=(a,b,c)=>{
return (!([a,b]=[a<b?a:b,a<b?b:a]))||(!([a,c]=[a<c?a:c,a<c?c:a]))||(!([b,c]=[b<c?b:c,b<c?c:b]))||b;
}
退会済みユーザー
2018/05/11 05:21
ということはif文をたくさん使ってやるしかないみたいですね。
データが3つならまだ頑張れるけどデータがもっと多くなったら大変ですね
2018/05/11 07:20 編集
int mid(int a,int b,int c){
if(a > b){ a += b; b = a - b; a -= b; }
if(a > c){ a += c; c = a - c; a -= c; }
if(b > c){ b += c; c = b - c; b -= c; }
return b;
}
↑3つでいけるにゃー
退会済みユーザー
2018/05/11 07:32 編集
なるほど、演算を施すことで入れ替えをしているのですね。
0
return a<b?(c<a?a:(b<c?b:c)):(c<b?b:(a<c?a:c));
こういうことじゃろ?
投稿2018/05/11 02:23
総合スコア5572
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。