演習において, 「自分のPCの環境ではプログラムが正しく動作するのに,自動採点システムでは正常に動作せず不合格となってしまいます.原因は何ですか?」 という質問をよく受けますが,自動採点システムそのものには不具合はありません. ほとんどの場合,このトラブルの原因は,提出されたプログラムに不適切な記述が含まれていることによります.
具体的な原因は下記の2点です.このトラブルに直面した場合は,まず自分のプログラムが下記2点のいずれかに該当していないかどうかをしっかりチェックしてください.

原因1: 提出されたプログラムが,他人の環境(自動採点システムを含む)では正常に動作する保証の無いプログラムになっている

このケースでは,プログラムにおいて,変数の初期化忘れ配列の範囲外アクセスmalloc関数の用法の誤り 等の不適切な記述があることが多いです. PCの環境によっては,このような誤りがあったとしてもコンパイルが成功し(-Wallオプションをつけても警告メッセージが出ない場合もあります),なおかつ自分の思い通りの実行結果が得られることがあります. しかし,他の環境で同じプログラムを実行したときには,自分の思い通りの出力が必ず得られるとは限りません.また,環境によってはセグメントエラーが起こる場合もあります.

原因2: 作成されたプログラムにおいて,問題文の指示にきちんと従っていない箇所がある

このケースでは,printfを用いて表示した内容に誤りがある(問題文の指示とは異なる文字が使われている,空白や改行を忘れている,等)問題文の指示とは異なる名前の関数が使われているといったことが多いです.


もし,プログラムが自分の環境で正常に動作し,かつ上記2点に該当していなくても自動採点システムにて不合格となるようでしたら,演習スタッフに質問してください. ただしその場合には,単に「どこに原因があるのか教えてください」と要求するだけではなく,トラブルの状況についてできる限り具体的に演習スタッフへ説明するよう心掛けてください. また,プログラムをスタッフに提示する際には,プログラムの内容に関してもできる限り具体的に説明してください.