数字をならべて | spin on the RITZ

数字をならべて

問題:

テキストファイルに


102

01

13

00004


といくつかの数字が並んでいる。これを読み込んで、小さい順にならべて表示する事。ただし、「01」などの数字はそのまま「01」と表示させるようにする事。尚、数値文字列の長さは最大でも80文字、行数は最大でも200行とする。

(宿題スレのを少し改変)



こんな感じの問題を暇つぶしにやっていたんですが


文字列読み込み

qsort(比較関数はatoiで数値の大小を求める)

表示


でいいのかな~なんて思ってたけど、数値文字列の長さが最大80文字なので(勝手に決めた)、最大80桁の数値まで扱える必要があるんだよねぇ~

少なくともintじゃ無理、longでも無理だろうから、この問題を解決する事に



ただ単にstrcmpとかで比べると色々問題が出てきたりするので


数値の桁を求める

┣桁が違う━桁が大きい方が必ず数値が大きい

┗桁が同じ━strcmp


ってな感じで比較関数を作ったら、多分上手くいったねぇ~



未だにちょろちょろロボットは出来ないorz