C ++ノート(6) - OJシングルポイントおよびマルチポイントの試験試験に

シングルポイントのテスト

PATは単一点試験(LeetCodeも単一点試験でなければならない)の使用です。シングルポイント・テスト・システムは、正しい値は、この試験と試験によって得られ、各データの出力が正しいかを判断します。トピック点数は、合計スコア及びデータによって同一です。

コードを書く上でテストが正常プログラムロジックに従って再度行うことができる唯一の点が必要です。

多点テスト

この問題は0にすることができる多点テストは、データ出力誤差のセット限り、すべてのデータを実行して、すべての出力はACにかなり右であることを必要とするための1回のプログラムが必要です。OJのほとんどがこの方法です。この方法によってのみで書かれたコードの厳しさが厳しいことができます。多点テストプログラムは、すべてのデータを実行できるようにする必要があり、そのプログラムが繰り返しコードコアの部分を実行するための方法があることを確認し、そのサイクルを使用する必要がなければなりません。

タイトル3の入力形式は、次の対応する入力プログラムで、通常があります。

しばらく... EOF型

scanf機能は、ときに障害を読んだときに成功し、パラメータの数を読ん返すscanf関数は-1を返し、EOF(ファイルの終端)を使用してCが示されている-1。

while(scanf("%d", &n) != EOF) {
    // 这里填运行代码
}

もう一つgets(str)

while(gets(str) != NULL) {
    // 这里填核心代码
}

しばらく...壊れ型

これは、入力と、入力データは、例えば、一定の条件を満たしているタイトル入力で停止することが要求されるab、両端入力が0です。

#include <stdio.h>

int main() {
    int a, b;
    while(scanf("%d%d", &a, &b) != EOF) {
        if(a==0 && b==0) break;
        printf("%d\n", a+b);    // 这里可以换成别的
    }
    return 0;
}

もう一つの条件は決意している間に起動することです:

#include <stdio.h>

int main() {
    int a, b;
    while(scanf("%d%d", &a, &b), a || b) {
        printf("%d\n", a+b);
    }
    return 0;
}

ときにそうaしてbいる限り永遠に0それは意志ループがないよう。

しばらく(T--)型

実行されるTプログラムの可変数、最後のプログラムの実行周期Tの時間、データのセットを解決するたびに記憶する必要があるので、これは、たびにテストデータの与えられた数を設定されています。

#include <stdio.h>

int main() {
    int T, a, b;
    scanf("%d", &T):
    while(T--) {
        scanf("%d%d", &a, &b);
        printf("%d\n", a+b);
    }
    return 0;
}

また、マルチサイトのテストでは、配列は通常、リセット、各サイクルの変数と配列の前にそれをリセットするために注意を払う必要がありますmemsetfill

参照

「アルゴリズム・ノート、」胡、と

おすすめ

転載: www.cnblogs.com/yejianying/p/cpp_notes_6.html