-
Total de itens
15 -
Registro em
-
Última visita
Posts postados por Yunus
-
-
Como comparar uma determinada posição de uma matriz através de colchetes sendo que passei como ponteiro de ponteiro (int **matriz)
Main:
while (qtdRainhas < n) { printf("\nInsira a linha: "); scanf("%i", &ri); printf("\nInsira a coluna: "); scanf("%i", &rj); verifica = verificaConflitos(ri-1, rj-1, tabuleiro, n); printf("verificou"); if (verifica == 0) { printf("\nentrou if\n"); tabuleiro[ri][rj] = 1; printf("Inseriu rainha %i" , i); qtdRainhas++; } else printf("\nPosicao invalida, insira novamente!"); } printf("\n"); Imprimir(tabuleiro, n);
.h
/**Imprime todas as posições do tabuleiro*/ void Imprimir(int **tabuleiro, int n); /**VERIFICA SE É POSSÍVEL POSICIONAR A RAINHA EM matriz(ri, rj). RETORNA 1 SE NÃO É POSSÍVEL E 0 SE FOR POSSÍVEL*/ int verificaConflitos (int ri, int rj, int **tabuleiro , int n);
funcoes.c
int verificaConflitos (int ri, int rj, int **tabuleiro, int n) { int i, i1, i2, j, j1, j2; int teste = 0; i1 = ri; i2 = ri; j1 = rj; j2 = rj; printf("\nentrou verificaConflito"); /**TESTA SE EXISTE ALGUMA NA MESMA LINHA OU COLUNA*/ for (i = 0; i < n; i++) { printf("\nentrou for"); if (tabuleiro[ri][i] == 1 || tabuleiro[i][rj] == 1)//o erro acontece aqui! { teste = 1; printf("\nentrou if"); break; } printf("\nsaiu for"); }
O programa não está completo, mas tem o suficiente... Coloquei alguns printf's para ver até onde o programa vai. Penso que seja algo errado em relação ao "tabuleiro [ri] " por tê-lo passado como "** tabuleiro". Alguém sabe me dizer o problema e como consertá-lo?
-
dessa forma eu garanto que as modificações ocorridas na função também serão ocorridas na main?
-
Preciso criar uma matriz N*N através de função, tenho três arquivos "main.c" "cabecalho.h" e "funcoes.c", como passar a matriz como parametro para a função? A seguir o código
main.c:
#include<stdio.h> #include "cabecalho.h" void main () { int **tabuleiro; int n; printf("Insira o tamanho do tabuleiro e a quantidade de rainhas (N): "); scanf("%i", &n); construirMatriz(tabuleiro, n); }
cabecalho.h:
#ifndef CABECALHO_H_INCLUDED #define CABECALHO_H_INCLUDED #include "funcoes.c" /**ALOCA A MATRIZ DINAMICAMENTE DE TAMANHO N*N*/ void construirMatriz(int tabuleiro[][], int n); #endif // CABECALHO_H_INCLUDED
funcoes.c:
#include<stdio.h> #include "cabecalho.h" void construirMatriz(int tabuleiro[][], int n) { tabuleiro = (int **) malloc (n * sizeof(int*)); for (i = 0; i < n, i++) tabuleiro[i] = (int *) malloc (n * sizeof(int)); }
esse é o erro:
funcoes.c:4:26: error: array type has incomplete element type
void construirMatriz(int tabuleiro[][], int n)Acredito ser na forma como estou passando a matriz para as funções.
^
-
Aplicado a esse caso específico em que eu coloquei os dois são idênticos, correto?
-
Isto:
if (i != ri && j1 != rj) { if (tabuleiro[i][j1] == 1) { teste = 1; break; } }
Seria o mesmo que isto?
if (i != ri && j1 != rj && tabuleiro[i][j1] == 1) { teste = 1; break; }
-
void EstagioAluno::readEA(ifstream &arq) { short lenght; char *buffer = new char [200];; do{ arq.read((char*)&lenght, sizeof(lenght)); buffer[lenght] = '\0'; arq.read(buffer, lenght); cout << buffer <<endl; }while(arq.good()); }
este método é responsável por ler registros em um arquivo e então imprimi-los, porém tem alguns erros...
case 2: arq2.open("estagios.txt", ios::binary); if (!arq2.good()) { cerr<< "não foi possivel abrir o arquivo."<<endl; exit(2); } ea.readEA(arq2); arq2.close(); break;
Dessa forma eu o uso na main.
este é o resultado que obtenho.
A pergunta é: qual o problema?
-
como fechar o tópico e colocar como resolvido? (iniciante no fórum aqui kkk).
-
Estou usando Falcon C++, o que acha dessa IDE? E eu criei um projeto sim...
-
Opa, achei o erro aqui... Estava indicando na main porém estava faltando "};" da classe no .h
-
main.cpp:9: error: expected nested-name-specifier before 'namespace'
main.cpp:9: error: expected unqualified-id before 'namespace'
main.cpp:9: error: expected ';' before 'namespace'
main.cpp:9: error: expected unqualified-id before 'namespace'
main.cpp:60: error: expected '}' at end of input
main.cpp:60: error: expected unqualified-id at end of inputdepois da correção esses foram os erros, alguma ideia sobre? (me desculpe caso esteja abusando da sua ajuda haha)
-
Muito obrigado pela ajuda vangodp!
Acredito que o "aluno.h" (com as implementações dos métodos) seja .cpp e não .h, estou correto? testei da sua forma e a compilação demora de forma demasiada e não roda.
-
Boa tarde,
Preciso separar a classe do main utilizando um .h mas não sei como faze-lo.
class EstagioAluno { private: int matricula; char nomeCompleto [50]; char tipoEstagio[13]; char nomeEmpresa[20]; char cnpj[20]; char nomeSupervisor[50]; char dataInicio[11]; char dataFim[11]; char dataEntregaRelatorioParcial[11]; char situacao[11]; int horasPrevistas; int horasTotalizadas; char parecerFinal[401]; }
e esses métodos: void PreencherEA(); void ImprimirEA(); void writeEA (ofstream &arq); void readEA(ifstream &arq);
Como separá-los em um .h um .cpp e um main?
obs: caso for preciso mais informações eu coloco aqui.
-
Boa noite Srs,
eu criei um buffer para escrever um registro em um arquivo e preciso de passar um inteiro para uma string (vetor de char), como faria isso?
segue o código:
void writeEA (ostream &stream, EstagioAluno &ea)
{
char buffer [1000];
short length;
strcpy (buffer, ea.matricula);
strcat(buffer, '|');
strcat(buffer, ea.nomeCompleto);
strcat(buffer, '|');
strcat(buffer, ea.tipoEstagio);
strcat(buffer, '|');
strcat(buffer, ea.nomeEmpresa);
strcat(buffer, '|');
strcat(buffer, ea.cnpj);
strcat(buffer, '|');
strcat(buffer, ea.nomeSupervisor);
strcat(buffer, '|');
strcat(buffer, ea.dataInicio);
strcat(buffer, '|');
strcat(buffer, ea.dataFim);
strcat(buffer, '|');
strcat(buffer, ea.dataEntregaRelatorioParcial);
strcat(buffer, ea.situacao);
strcat(buffer, '|');
strcat(buffer, ea.horasPrevistas);
strcat(buffer, '|');
strcat(buffer, ea.horasTotalizadas);
strcat(buffer, '|');
strcat(buffer, ea.parecerFinal);
strcat(buffer, '|');
length = (short) strlen(buffer);
stream.write(&length, sizeof(length));
stream.write(buffer, length);
}[\code]Os campos matricula, horasPrevistas e horasTotalizadas são int, consequentemente o strcpy não funciona, o que colocaria no lugar?
desde já agradeço!
-
eu posso comparar um vetor de char com um char dessa forma, ou há algum erro?for (i = 0; i <= j; i++){if (palavra == palpite)palavra_chute = palpite;
String recebe get
em Java
Postado
Tenho uma variável static "fieldOrder" que seleciona a ordem dos campos no registro, exemplo: name, cpf, phone, course, age, active ou poderia ser cpf, age, name, course, phone, active, o usuário do sistema vai decidir isso.
Gostaria de armazená-lo em um buffer, com um caractere especial separando cada campo, para então guardar em um arquivo(mas guardar no arquivo não vem ao caso agora).
O problema aqui é que entra nos cases corretamente (testei isso), porém o buffer não está recebendo gets. Não sei o porque acontece isso ou como fazer isso funcionar.
Alguma ideia? Fiz algo errado?
Aqui vai o método: