掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VS2008できちんと動くプログラムがBCCやGCCで上手く動かない (ID:72823)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
私はまだまだ勉強中の身で簡単なアルゴリズムの勉強をしています。 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=2105 リンク先は東大プログラミングコンテストの問題で、これを参加者である東大生などは20分程度でコードを作り正答するそうです。 私は未熟なので時間がかかり苦労の末に下記リンクのようなコードを書きました。 http://www14.atwiki.jp/c21coterie/?cmd=upload&act=open&page=2011%E5%B9%B47%E6%9C%88&file=2105RhythmMachineTest1.txt このコードはVS2008できちんと動きますが、BCCやGCCでコンパイルして動かすとおかしなことに楽譜を統合した後に登録される音の数がVS2008の時より減るという不思議な事態が起きます。 コードは最初楽譜を読み取り、全ての音を統合合成してならされる順番に並べます。 allMusicというMapにならされる順に全ての音を。 musicというMapに00(無音)以外をならされる順番をソート基準として音を入れます。 コードは次にmusicから音を取り出しならされる音の最小間隔を調べます。 その間隔でallmusicから取り出して音を出力し、全ての音をきちんともれなくならせるならその間隔で音を出力します。 駄目なら音を鳴らす間隔を更に1/2,1/3、、、と狭めてその間隔でいけるか試すのがコードの大筋です。 もっと賢い方法があるとは思いますが愚直に実装しました。 このコード、最初の加工で音を統合した後、music.size()を調べるとVS2008とbccやgccとでは結果が違い、Vs2008C++では正しい結果を、bccでは正しい結果となりません。 なぜこうなるのか分かりません。 検証用として 採点用入力データはこちらで http://www14.atwiki.jp/c21coterie/?cmd=upload&act=open&page=2011%E5%B9%B47%E6%9C%88&file=input1.txt 採点用出力データはこちらです。 http://www14.atwiki.jp/c21coterie/?cmd=upload&act=open&page=2011%E5%B9%B47%E6%9C%88&file=output1.txt 私のコードは検証用にテキストファイルに結果を出力しています。 本当は答えはprintfのみで出力します。 検証用に出力したテキストファイルを見てみると、VS2008では出力データと採点データが完全に一致するのですがBCCやGCCで試すと何故か上手く動きません。 私のコードに何かコンパイラ依存の変なコードが混じっているのかもしれませんが自分ではいくら調べても原因がわかりませんでした。 どなたかご指導お願いします。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.