変数を用意しておいて、最大値、最小値の値を更新していくだけですね。
ループを抜けるのは10000以上か0以下としています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | fn main() { let mut imax: i32 = -1; let mut imin: i32 = 10000; let mut kmax: i32 = 0; let mut kmin: i32 = 0; let mut k: i32 = 0; let mut i: i32 = 0; while(i >= 0 && i <= 9999){ println!("4桁以内の正の整数を入力してください。"); let mut x = String::new(); std::io::stdin().read_line(&mut x).expect("Failed to read line"); x = x.trim_end().to_owned(); i = x.parse::<i32>().unwrap(); if (0 < i && i < 10000) { k += 1; if(imax < i) { imax = i; kmax = k; } if(imin > i) { imin = i; kmin = k; } } } if (k == 0) { println!("入力されていません。"); } else { println!("最大値 {}({}回目)", imax, kmax); println!("最小値 {}({}回目)", imin, kmin); } } |
Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.90s
Running `target/debug/basic`
4桁以内の正の整数を入力してください。
100
4桁以内の正の整数を入力してください。
20
4桁以内の正の整数を入力してください。
50
4桁以内の正の整数を入力してください。
29
4桁以内の正の整数を入力してください。
829
4桁以内の正の整数を入力してください。
2222
4桁以内の正の整数を入力してください。
2452
4桁以内の正の整数を入力してください。
11245
最大値 2452(7回目)
最小値 20(2回目)
うーむ なるほど〜