#!/usr/bin/env ruby
# -*- coding: utf-8 -*-
#テーマ 買い物後や、お金が貰えたときに、今どの位お金があるのかを知りたいけど、いちいち計算するのが面倒くさい人の計算を助けるプログラムです。
#背景 僕が残金を知りたくなったときに、自分の頭で計算すると誤差が出るし、電卓を使うと間違えて入力したら気がつけないので、どっちもの欠点を補えるようなプログラムを作ろうと思いました。
#アイディア  増えた時と減った時をどっちか聞いて判別する while trueを使う 間違えた時用に数字を変えれるようにする
#結果 増えた時と減った時に対応できたが、間違えた数字を変えるのが難しくできなかった。配列を使ってこのプログラムを作り、pushを使えば最後に入力した数は変更できそうだと思った。
i = 0
nedan =[]
puts"残金を入力"
za = gets.chomp.to_i

while true 
 printf("%d番目の値段を入力\n",i+1)
 nedan << gets.to_i

 za += nedan[i]
 
 printf("残金は %d \n",za)
 

 puts"訂正しますか?(する=0 しない=その他の数)"
 sen = gets.to_i
 if sen == 0
   puts"何円に変えますか?"
   kaesuu = gets.to_i

   za -= nedan[i]  
 
   nedan[i] = kaesuu
   za += kaesuu
   printf("残金は%d円\n",za)
   
 end

 i += 1
 
 puts"終了しますか(する=0 しない=その他の数)"
 sennta = gets.to_i
 if sennta == 0
   break
 end
 
#i += 1 
end

u = 0
while u < i
  printf("%dつ目の値段は%d円です\n",u+1,nedan[u])
 
  u += 1  
end
printf("残金は%d円\n",za)
puts"変更する箇所はありますか[はい=0 終了=その他)]"
sen = gets.to_i

if sen == 0
  puts"何番目を変えますか?"
  kaeban = gets.to_i

  if kaeban == 0 or kaeban > i
    print("変更を中止します\n")
  
  else

   kaeban -= 1  #配列は0から始まるので
  
   
   puts"何円に変えますか?"
   kaesuu = gets.to_i

   za -= nedan[kaeban]  #残高を一旦取り消し
 
   nedan[kaeban] = kaesuu
   za += kaesuu
   printf("残金は%d円\n",za)

   u = 0
   while u < i
    printf("%d:%d円\n",u+1,nedan[u])
    u +=1
    end

   printf("変更後の残金は%d円です\n",za)
 end
end

print("プログラム終了\n")

