数字をならべて
問題:
テキストファイルに
102
01
13
00004
…
といくつかの数字が並んでいる。これを読み込んで、小さい順にならべて表示する事。ただし、「01」などの数字はそのまま「01」と表示させるようにする事。尚、数値文字列の長さは最大でも80文字、行数は最大でも200行とする。
(宿題スレのを少し改変)
こんな感じの問題を暇つぶしにやっていたんですが
文字列読み込み
↓
qsort(比較関数はatoiで数値の大小を求める)
↓
表示
でいいのかな~なんて思ってたけど、数値文字列の長さが最大80文字なので(勝手に決めた)、最大80桁の数値まで扱える必要があるんだよねぇ~
少なくともintじゃ無理、longでも無理だろうから、この問題を解決する事に
ただ単にstrcmpとかで比べると色々問題が出てきたりするので
数値の桁を求める
┣桁が違う━桁が大きい方が必ず数値が大きい
┗桁が同じ━strcmp
ってな感じで比較関数を作ったら、多分上手くいったねぇ~
未だにちょろちょろロボットは出来ないorz