-
Posts
1.558 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Livros
Cursos
Análises
Fórum
Tudo que isrnick postou
-
C Listas em C que utilize estrutura de dados
isrnick respondeu ao tópico de Vagabond1001 em C/C#/C++
@Mauro Britivaldo É que nesse tópico ficou confuso porque a informação está espalhada em vários posts, mas tem outro tópico de outra pessoa com a mesma questão, que o mesmo código é fornecido: Eles tem até o mesmo professor, devem ser da mesma turma. -
C++ Algoritmo que diga se alguem é culpado ou nao de um crime
isrnick respondeu ao tópico de Brendo Washingtonn em C/C#/C++
@Brendo Washingtonn O fórum está aqui para tirar dúvidas, não tem nada de causar aborrecimento, pode continuar perguntando até tirar todas que tiver. E sim, existe. Teria que armazenar a resposta do usuário em um objeto da classe string, testar se a resposta é igual a "sim", e aí somar 1 no contador se for igual. -
C Listas em C que utilize estrutura de dados
isrnick respondeu ao tópico de Vagabond1001 em C/C#/C++
@Mauro Britivaldo De qualquer maneira nesse caso não é responsabilidade do aluno, essas funções de checagem já foram fornecidas (presumidamente pelo professor) e a única coisa que é pedido para o aluno fazer é a função para inserir no fim da lista. -
C++ Algoritmo que diga se alguem é culpado ou nao de um crime
isrnick respondeu ao tópico de Brendo Washingtonn em C/C#/C++
Só pode deixar sem { } quando dentro do bloco só tem 1 única linha de comando, se tiver mais de 1 é obrigatório colocar o { }. if (a == b) { c = 4 * d; } //é igual a: if (a == b) c = 4 * d; //e também: if (a == b) c = 4 * d; Mas não pode fazer neste caso: if (a == b) { c = 4 * d; d++; } Pois: if (a == b) c = 4 * d; d++; //na verdade é igual a: if (a == b) { c = 4 * d; } d++; //Que faz algo bem diferente do original Algumas pessoas até preferem sempre colocar { } em todos os casos só manter a consistência, mas aí é uma questão de preferência. -
@arfneto Esse GIF que postei é da Wikipedia (aliás só peguei o endereço da imagem e postei aqui, se olhar os detalhes da imagem vai ver que a URL é da Wikipedia), mas é da versão em inglês do artigo sobre o Bubble Sort (que aliás é sempre muito mais completa que a versão em português). https://en.wikipedia.org/wiki/Bubble_sort E segue link Wikipedia do seu GIF bonitinho também:
-
C++ Algoritmo que diga se alguem é culpado ou nao de um crime
isrnick respondeu ao tópico de Brendo Washingtonn em C/C#/C++
Não pois ele só testaria esse if se os ifs anteriores foram ambos falsos, é exatamente para isso que serve o else (=senão) que tem no else if, então já testou que qtdSim não é <= 1 nem ==2, logo só vai entrar nesse if se for 3 ou 4. -
C++ Algoritmo que diga se alguem é culpado ou nao de um crime
isrnick respondeu ao tópico de Brendo Washingtonn em C/C#/C++
Não faltou não, meu código já considera o 3, segundo o enunciado para 3 ou 4 ele é Cúmplice, que é o que meu código faz. -
C++ Algoritmo que diga se alguem é culpado ou nao de um crime
isrnick respondeu ao tópico de Brendo Washingtonn em C/C#/C++
if (qtdSim <= 1){ cout<<"Inocente "; } else if (qtdSim == 2){ cout<<"Suspeito "; } else if (qtdSim <= 4){ cout<<"Cumplice "; } else { cout<<"Assassino "; } -
Gif do Bubble Sort: Sim, tecnicamente é desnecessário, mas o exemplo de entradas usa o texto "cod" ao invés de um número. (Principalmente se a resposta for testada por um programa ao invés do professor, qualquer mudança é considerada um erro pelo programa.)
-
Bubble Sort é bem simples, você percorre a lista várias vezes do começo até a penúltima, e compara o item atual da lista com o próximo, se o próximo for menor que o atual então deve trocar os items de posição, assim os menores vão sendo movidos para o começo da lista, para uma lista com N items percorre a lista inteira N-1 vezes fazendo trocas e vai obter a lista ordenada, ou então pode parar de percorrer se percorrer a lista inteira uma vez sem fazer nenhuma troca.
-
Tem sérios problemas de recursão descontrolada no código, seu programa chama as funções mas nunca finaliza e retorna delas, pois ao invés de usar return ou deixar chegar ao fim do código da função (quando a função é void) você faz uma chamada para uma nova instancia da função do nível anterior. Veja um exemplo do que seu programa pode fazer ao chamar novamente as funções (ao invés de retornar): main -> Menu -> Gamemode -> VersusCOM -> GameMode -> Menu -> GameMode -> VersusHuman Observe que toda vez você chama a função e então no exemplo acima tem 3 funções Gamemode carregadas, 2 Menu, e 1 VersusCom carregados na memória, incluindo as variáveis criadas nelas que não está mais usando, enquanto está jogando no VersusHuman.
-
@Julia Leite Você declarou ord com um int: int TAM,TAM2,i,ord; mas deveria ser um vetor de char.
-
Esse tipo de exercício é melhor fazer num papel primeiro, escreve a matriz e os números das linhas e colunas e tenta achar qual é a relação entre o número e seus respectivos índices de linha e de coluna. Comece pelos números maior que 0, que é mais fácil achar a relação. E depois pense em que relação todos os índices de linha e de coluna das casas que recebem 0 tem em comum entre si, e vai perceber qual a condição para uma casa receber 0 ao invés de outro número.
-
No caso do empate? Pode sim, conta quantos ' ' tem e se for igual a 0 retorna deu empate. Também pode fazer assim: int tied = 1; for (i=0; i<9; i++){ if (house[i] == ' '){ tied = 0; break; } } if (tied) return 0; Ou seja, procura por ' ' no vetor todo, se encontrar algum não empatou (tied=0) então pode parar de procurar (break). Obs: tied = empatou em inglês também poderia usar draw ou broke/break even.
-
Editei e corrigi a parte do empate da função Verify() que ainda estava usando a variável winner. adicionado 4 minutos depois Edit: Vai estar tudo diferente de ' ', entendi....
-
C Listas em C que utilize estrutura de dados
isrnick respondeu ao tópico de Vagabond1001 em C/C#/C++
A função não está perguntando "A lista foi criada?". A pergunta "A lista está vazia?" só pode ser respondida com sim ou não, verdadeiro ou falso. Não dá para retornar 3 estados lógicos diferentes, só existe true e false. Então só dá para considerar que a li==NULL é vazia. Do contrário deveria considerar um erro e assumir que a lista existe quando a função foi chamada e nem examinar o caso do NULL: int lista_vazia(Lista* li) { return (li->qtde == 0); } Mas ainda considero o caso de li==NULL é vazio descreve melhor, mas aí vira questão conceitual/interpretativa e depende de preferência de quem está programando. -
C Listas em C que utilize estrutura de dados
isrnick respondeu ao tópico de Vagabond1001 em C/C#/C++
@Mauro Britivaldo Você indicou o trecho errado de código, queria dizer esse: int lista_vazia(Lista* li) { if (li == NULL) return -1; return (li->qtde == 0); }; E quando li == NULL tem que retornar que está vazia, do contrário seria pior retornaria que ela existe e não está vazia, ou seja tem items inseridos. -
Note que você não incluiu o código importado do Facilitador.h então não dá para nós compilarmos. Jogo da velha tem 9 casas então TAM deveria ser igual a 9. A função Verify() poderia ser simplificada para algo desse tipo: int Verify() { // winner = 1 é Player um - winner = 2 é player dois - winner = 0 é empate; int i; // Verifica linhas; for(i=0; i<3; i++){ if(house[i*3] == house[i*3+1] && house[i*3] == house[i*3+2]){ if(house[i*3] == 'X') return 1; if(house[i*3] == 'O') return 2; } } // Verifica Colunas: for(i=0; i<3; i++){ if(house[i] == house[i+3] && house[i] == house[i+6]){ if(house[i] == 'X') return 1; if(house[i] == 'O') return 2; } } // Verifica Diagonal Principal: if(house[0] == house[4] && house[0] == house[8]){ if(house[0] == 'X') return 1; if(house[0] == 'O') return 2; } // Verifica Diagonal Secundária if(house[2] == house[4] && house[2] == house[7]){ if(house[2] == 'X') return 1; if(house[2] == 'O') return 2; } // Verifica se foi empate; if (house[0] != ' ' && house[1] != ' ' && house[2] != ' ' && house[3] != ' ' && house[4] != ' ' && house[5] != ' ' && house[6] != ' ' && house[7] != ' ' && house[8] != ' ') { return 0; } return 3; } adicionado 1 minuto depois Se tiver interesse dê uma olhada nesse código de um jogo da velha que fiz faz um tempo e postei nesse outro tópico:
-
C Listas em C que utilize estrutura de dados
isrnick respondeu ao tópico de Vagabond1001 em C/C#/C++
Representa exatamente o que o seu código fez, ou seja só incluiu 1 aluno na lista. Para fazer o que você está pensando teria que chamar fim_lista(li, &al) toda vez após cada aluno criado. Ou seja o main ficaria assim: int main() { Lista* li; Aluno al; li = cria_lista(); al = (Aluno){ .matricula = 65464, .nome = "Maria" }; fim_lista(li, &al); al = (Aluno){ .matricula = 65567, .nome = "Marcos" }; fim_lista(li, &al); al = (Aluno){ .matricula = 68865, .nome = "Renan" }; fim_lista(li, &al); al = (Aluno){ .matricula = 78890, .nome = "Filipe" }; fim_lista(li, &al); al = (Aluno){ .matricula = 78900, .nome = "Rafael" }; fim_lista(li, &al); al = (Aluno){ .matricula = 78900, .nome = "João" }; fim_lista(li, &al); printf("\nLista vazia: %d ", lista_vazia(li)); printf("\nLista cheia: %d ", lista_cheia(li)); printf("\nTamanho da lista: %d ", tamanho_lista(li)); } Note que eu tive que mover li=cria_lista) para o topo. -
C Listas em C que utilize estrutura de dados
isrnick respondeu ao tópico de Vagabond1001 em C/C#/C++
Tem dois li=cria_lista() no seu main exclua o segundo. -
C Listas em C que utilize estrutura de dados
isrnick respondeu ao tópico de Vagabond1001 em C/C#/C++
Funciona sim. Não há necessidade de usar memcpy() para copiar o valores de apenas 1 struct. A struct já é entendida como uma variável e pode ser atribuída diretamente e será copiados todos os bits contidos na struct. adicionado 1 minuto depois Ignore minha mensagem, eu só tinha visto o seu post na primeira página do tópico, não tinha visto que tinha uma segunda página e que você já tinha alterado o código, no caso do seu último post seria 20 mesmo... -
C Listas em C que utilize estrutura de dados
isrnick respondeu ao tópico de Vagabond1001 em C/C#/C++
0 é igual a falso, e qualquer valor diferente de 0 é verdadeiro. Se a Lista Vazia e Cheia estão ambos retornando 0 significa que a lista não está vazia nem está cheia. Note que para estar vazia não deve ter nenhum elemento, e para estar cheia precisa ter MAX=100 elementos inseridos. -
int age = 19; int *pAge = &age; age => valor da variável age &age => endereço da variável age *pAge => valor da variável age pAge => endereço da variável age &pAge => endereço da variável ponteiro pAge
-
C Listas em C que utilize estrutura de dados
isrnick respondeu ao tópico de Vagabond1001 em C/C#/C++
Se entendi corretamente, era para usar a estrutura inclusa no código já fornecido, e apenas fazer uma função para inserir um elemento no fim da lista. Então se é isso mesmo, eu diria que esse código não atende o que foi solicitado, pois você alterou o código original, e transformou a lista, que era sequencial estática, em uma lista ligada, e então você fez uma função para inserir no fim da lista ligada. Note também que o programa como está nem se quer usa a struct aluno. -
Vai usar a mesma propriedade apontada no seu outro tópico:
Sobre o Clube do Hardware
No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais
Direitos autorais
Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais