変数を用意しておいて、最大値、最小値の値を更新していくだけですね。
ループを抜けるのは10000以上か0以下としています。
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回目)
うーむ なるほど〜