Olá pessoal!
Tenho um vetor que só tem os inteiros 1 e 2 alocados aleatoriamente. Exemplo:
int vetor[15] = {1,1,1,2,2,1,1,2,2,2,1,1,1,2,1};Como o vetor seria impresso:
1 1 1 2 2 1 1 2 2 2 1 1 1 2 1Tenho esse mesmo vetor na forma de tabela (matriz bidimensional):
int tabela[3][5] = {{1,1,1,2,2},{1,1,2,2,2},{1,1,1,2,1}};
Como a tabela seria impressa:
[,0][,1][,2][,3][,4] [0,] 1 1 1 2 2 [1,] 1 1 2 2 2 [2,] 1 1 1 2 1
Note que há (no exemplo) 3 linhas e 5 colunas, mas isso pode variar.
Seria possível contar a quantidade do número 1 a cada 5 valores (no caso do vetor unidimensional) e armazenar as respostas num vetor unidimensional? Ou seja, cada índice do vetor é a resposta da contagem de uma linha.
Vetor de resposta:
int resposta[3];
OU contar a quantidade do número 1 a cada linha (que é o número de colunas no caso da tabela) e armazenar as respostas num vetor unidimensional (ou bidimensional, dispondo linha e resposta ao lado)?
int respostaTabela[3][2];
De qualquer maneira a atribuição dos valores armazenados no vetor resposta seria o mesmo que:
resposta[0] = 3 resposta[1] = 2 resposta[2] = 4
A impressão do vetor ficaria:
3 2 4
A atribuição de valores a tabela resposta seria o mesmo que (primeira coluna para enumerar a linha e segunda coluna para mostrar a contagem):
int respostaTabela[3][2] = {{1, 3}, {2, 2}, {3, 4}};
E a impressão ficaria:
[,0][,1] [0,] 1 3 [1,] 2 2 [2,] 3 4
A contagem no vetor total e a transformação deste em tabela via função for (duas vezes) eu já entendi, mas o procedimento que estou colocando aqui ainda é um mistério para mim.
Obrigado pela atenção, um abraço!
O código completo do script se ajudar:
void OnStart() { //--- int vetor[15] = {1,1,1,2,2,1,1,2,2,2,1,1,1,2,1}; int tabela[3][5] = {{1,1,1,2,2},{1,1,2,2,2},{1,1,1,2,1}}; Print("O vetor original: "); ArrayPrint(vetor); Print("Como ficaria em tabela: "); ArrayPrint(tabela); int contadorVetor1 = 0; for(int i = 0;i < ArraySize(vetor); i++) { if(vetor[i] == 1) { contadorVetor1++; } } Print("Quantidade total de número 1: ", contadorVetor1); int respostaVetor[] = {3, 2, 4}; Print("respotaVetor (número 1 a cada 5): "); ArrayPrint(respostaVetor); int respostaTabela[][2] = {{1, 3}, {2, 2}, {3, 4}}; Print("respostaTabela (linha e quantidade de número 1 a cada linha): "); ArrayPrint(respostaTabela); } //+------------------------------------------------------------------+
Achei eu mesmo a resposta das três possibilidades:
int contador5 = 0; int k = 5; int l = 0; for (int i = 0; i <= 10; i += 5) { for (int j = i; j < k; j++) { if(vetor [j] == 1) { contador5++; } } respostaVetor[l] = contador5; contador5 = 0; k+=5; l++; }
Impressão do primeiro código:
3 2 42ª (a partir da tabela armazenando as respostas em um vetor):
int respostaTabela[3]; ZeroMemory(respostaTabela); int numeroLinhas = 3; int numeroColunas = 5; int contador5_tabela = 0; for (int linha = 0; linha < numeroLinhas; linha++) { for (int coluna = 0; coluna < numeroColunas; coluna++) { if(tabela[linha][coluna] == 1) { contador5_tabela++; } } respostaTabela[linha] = contador5_tabela; contador5_tabela = 0; }
Impressão do 2º código:
3 2 4
3ª (a partir da tabela armazenando as respostas em outra tabela, fazendo uso da 1ª coluna como índice de referência à linha da tabela original):
int respostaTabela_indice[3][2]; ZeroMemory(respostaTabela_indice); for (int linha = 0; linha < numeroLinhas; linha++) { for (int coluna = 0; coluna < numeroColunas; coluna++) { if(tabela[linha][coluna] == 1) { contador5_tabela++; } } respostaTabela_indice[linha][0] = linha; respostaTabela_indice[linha][1] = contador5_tabela; contador5_tabela = 0; }
Impressão do 3º código:
[,0][,1] [0,] 0 3 [1,] 1 2 [2,] 2 4Agradeço a Deus e a todos os colegas que me ajudaram aqui e em outros lugares ou deram atenção à mensagem. Espero que sirva de ajuda a quem tiver dificuldades na mesma área Um abração!

- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Amigos programadores, uma ajuda por favor com contagem?
Contextualizando:
Tenho um vetor que só tem os inteiros 1 e 2 alocados aleatoriamente. Exemplo:
int vetor[10] = {1,1,1,2,2,1,1,2,2,2}
Tenho esse mesmo vetor na forma bidimensional:
1, 1, 1, 2, 2
1, 1 , 2, 2, 2
Note que há 5 colunas. Seria possível contar a quantidade do número 1 a cada 5 valores? (que é o número de colunas no caso do Array bidimensional)
Eu já sei contar a quantidade total do número 1 no vetor unidimensional, mas preciso dessa informação a cada cinco valores (ou a cada linha no Array bidimensional). A resposta seria
Linha 1 = 3
Linha 2 = 2
Obrigado pela atenção, um abraço!