Я не могу думать, как переместить колонку

Если вы разделяете строку в Lua, вы должны попробовать методы string.gmatch () или string.sub (). Используйте метод string.sub (), если вам известен индекс, который вы хотите разбить на строку, или используйте string.gmatch (), если вы проанализируете строку, чтобы найти местоположение для разделения строки на.

Пример использования string.gmatch () из Справочное руководство Lua 5.1 :

 t = {}
 s = "from=world, to=Lua"
 for k, v in string.gmatch(s, "(%w+)=(%w+)") do
   t[k] = v
 end

0
задан Miketue 15 January 2019 в 15:47
поделиться

2 ответа

Как насчет следующего:

int coluna(int sz, int tabuleiro[sz][sz])
{
    int i, j, k, m;
    i= 0;
    m= sz;
    while (i<m) {
        int allzeroes= 1;
        for (j=0; j<sz; j++) {
            if (tabuleiro[i][j]!=0) {
                allzeroes= 0;
                break;
            }
        }
        if (allzeroes) {    // col i is all zeroes
            // move all remaining cols down 1 col
            for (j=i; j<m-1; j++)
                for (k=0; k<sz; k++)
                    tabuleiro[j][k]= tabuleiro[j+1][k];

            // zero last column
            for (k=0; k<sz; k++)
                tabuleiro[m-1][j]= 0;

            // new last col that is not zero
            m--;
        }
        else i++;
    }
    return 1;
}
0
ответ дан Paul Ogilvie 15 January 2019 в 15:47
поделиться

Как насчет этого (комментарии объясняют код):

void coluna(int size, int board[size][size]){
    int not_zeros[size]; // Use to save the index of columns that contain at 
                         // least one number different than zero.
    int i, j;
    for(i=0; i<size; i++){
        not_zeros[i] = -1; //initialize the array.

    for (i=0; i<size; i++){
        int foundNotZero = 0;
        for (j=0; j<size; j++){
            if(board[j][i] != 0){ //line j, column i.
                foundNotZero = 1;
                break;
            }
        }
        if (foundNotZero == 1){ //at least one element of the column i is not zero.
            not_zeros[i] = i;
        }
    }
    int start = 0;
    for(i=0; i<size; i++){
        if (not_zeros[i] >= 0){ //copy column i to column start.
            for(j = 0; j<size; j++){
                board[j][start] = board[j][not_zeros[i]];
            }
            start++; //increment start.
        }
    }
    for(i=start; i<size; i++){
        for(j=0; j<size; j++){
            board[j][i] = 0; //fill the remaining columns with zeros.
        }
    }
}
0
ответ дан woz 15 January 2019 в 15:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: