POJ1002在vs2017上运行的正确,也没有报错,但是在POJ上提交时出现Compile Error:

报错点开是
Main.cpp
F:\temp\18294317.258129\Main.cpp(17) : error C2059: syntax error : '{'
F:\temp\18294317.258129\Main.cpp(17) : error C2143: syntax error : missing ';' before '{'
F:\temp\18294317.258129\Main.cpp(17) : error C2143: syntax error : missing ';' before '}'

我写的代码是:

动态定义两个二维数组,分别用于输入和输出,判断输入的字符串是否符合要求,然后再写入另一个二维数组,都判断完之后,在对它们进行用strcmp是否重复的判断,重复的赋值再后面的判断中直接排除掉,最后输出。但是这个程序在vs2017上可以正确运行,但在POJ上就报错了,好像是格式的错误,我也搞不清楚了。。。

#include
#include
using namespace std;
int main() {
    int m, i, j, *c,n;
    n = 0;
    cin >> m;
    c = new int[m];
    char **b;
    b = new char *[m];
    for (i = 0; i < m; i++) {
        b[i] = new char[9];
    }
    for ( i = 0; i < m; i++) {
        c[i] = 0;
        for (j = 0; j < 8; j++) {
            b[i][j] = { 0 };
        }
        b[i][9] = '\0';
    }
    
    char **a;
    a = new char *[m];
    for ( i = 0; i < m; i++) {
        a[i] = new char [20];
    }
    for ( i = 0; i < m; i++) {
        cin >> a[i];
        n = 0;
        for (int j = 0; j < 20; j++) {
            if (n == 3) {
                b[i][n] = '-';
                n++;
            }
            if (a[i][j] >= '0'&&a[i][j] <= '9') {
                b[i][n] = b[i][n] + a[i][j];
                n++;
            }
            else if (a[i][j] == 'A' || a[i][j] == 'B' || a[i][j] == 'C') {
                b[i][n] = b[i][n] + '2'; n++;
            }
            else if (a[i][j] == 'D' || a[i][j] == 'E' || a[i][j] == 'F') {
                b[i][n] = b[i][n] + '3'; n++;
            }
            else if (a[i][j] == 'G' || a[i][j] == 'H' || a[i][j] == 'I') {
                b[i][n] = b[i][n] + '4'; n++;
            }
            else if (a[i][j] == 'J' || a[i][j] == 'K' || a[i][j] == 'L') {
                b[i][n] = b[i][n] + '5'; n++;
            }
            else if (a[i][j] == 'M' || a[i][j] == 'N' || a[i][j] == 'O') {
                b[i][n] = b[i][n] + '6'; n++;
            }
            else if (a[i][j] == 'P' || a[i][j] == 'R' || a[i][j] == 'S') {
                b[i][n] = b[i][n] + '7'; n++;
            }
            else if (a[i][j] == 'T' || a[i][j] == 'U' || a[i][j] == 'V') {
                b[i][n] = b[i][n] + '8'; n++;
            }
            else if (a[i][j] == 'W' || a[i][j] == 'X' || a[i][j] == 'Y') {
                b[i][n] = b[i][n] + '9'; n++;
            }
            else {

            }
        }
        
    }
    for (i = 0; i < m; i++) {
        if (b[i][0] != 'a') {
            for (j = 0; j < m; j++) {
                if (strcmp(b[i], b[j]) == 0) {
                    c[i]++;
                    if (i != j) {
                        b[j][0] = 'a';
                    }
                }
            }
        }
        
    }
    for (i = 0; i < m; i++) {
        if (c[i] > 1 ) {
            for (j = 0; j < 8; j++) {
                cout << b[i][j];
            }
            cout << " " << c[i] << endl;
        }
    }
    return 0;
}

你可能感兴趣的:(poj程序)