Ir ao conteúdo

Flávio Pedroza

Membro Pleno
  • Posts

    2.145
  • Cadastrado em

  • Última visita

Tudo que Flávio Pedroza postou

  1. Dá pra fazer sem matriz ou vetor Aqui um exemplo: #include <iostream> int main() { int x, y; printf ("Testando !(x<5) && !(y>=7):\n" ); x = 5; y = 6; printf ("x: %d; y: % d; resultado: %d\n", x, y, !(x < 5) && !(y>=7)); x = 5; y = 7; printf ("x: %d; y: % d; resultado: %d\n", x, y, !(x < 5) && !(y>=7)); x = 4; y = 6; printf ("x: %d; y: % d; resultado: %d\n", x, y, !(x < 5) && !(y>=7)); x = 4; y = 7; printf ("x: %d; y: % d; resultado: %d\n", x, y, !(x < 5) && !(y>=7)); return 0; } você repete mudando a expressão para "!((x<5) || (y>=7))" e mantém os mesmos valores de x e y, o resultado deve dar igual
  2. Não...Não descasque nada! Eu quis dizer o seguinte: 1. Reitre a fonte do gabinete e plugue na tomada. 2. Conecte um fan com conector molex em uma das saídas da fonte. 3. Usando um clipe de metal, de um curto nos fios verdes e pretos da fonte da figura. Mas se estiver inseguro, tenta procurar algum video ou tutorial ensinando a "testar fonte fora do gabinete" Aqui exemplo: https://www.tecmundo.com.br/conectores/2591-manutencao-de-pcs-como-testar-se-uma-fonte-esta-queimada-video-.htm https://www.tecmundo.com.br/conectores/2591-manutencao-de-pcs-como-testar-se-uma-fonte-esta-queimada-video-.htm
  3. Teria como você testar a fonte fora do gabinete? Para isso, você pluga um cooler na fonte e dá um curto (jump) os fios preto e verde, como na figura da esquerda: https://depts.washington.edu/open3dp/2012/06/jumping-a-power-supply-for-12-volts-dc/ Veja se o cooler fica girando continuamente. Edti: Não use estabilizadores, ok?
  4. a) !(x<5) && !(y>=7) é equivalente a !((x<5) || (y>=7)) pois (!a && !b) => !(a || b) É só fazer a tabela verdade para confirmar (!a && !b) * !(a || b) a b resultado * a b resultado 0 1 0 * 0 1 0 1 0 0 * 1 0 0 1 1 0 * 1 1 0 0 0 1 * 0 0 1 Acho que o enunciado quer isso, que você monte estas tabelas verdades e mostre na tela. Se o resultado for igual, então as expressão são realmente equivalentes.
  5. acumuladorNoPeso e acumuladorPessoas são inteiro. Quando você divide dois inteiros e o denominador é maior que o numerado, o resultado da sempre 0. Se eu multiplicar por 100.0 antes de dividir, o compilador interpreta como ponto flutuante agora e o resultado pode ter decimais.
  6. Tenta assim: System.out.println("A porcentagem de atletas com peso entre 10,0 e 25,5kg: " + df.format((acumuladorNoPeso*100.0)/acumuladorPessoas));
  7. Tenta assim, sem colocar o fgetc na condicional do while: int leitura(const char nomeA[]) { char ch; int i; FILE *arq; fopen_s(&arq, nomeA, "r"); while (1) { // EXISTEM 6 PIPES, LOGO I DE 0 ATÉ 5 for (i = 0; i<6; i++) { if (i == 0) printf("\nSOBRENOME: "); if (i == 1) printf(" NOME: "); if (i == 2) printf(" ENDERECO: "); if (i == 3) printf(" CIDADE: "); if (i == 4) printf(" ESTADO: "); if (i == 5) printf(" CEP: "); while ((ch = fgetc(arq)) != '|') { if (ch == EOF) { fclose(arq); return 0; } printf("%c", ch); } printf("\n"); } } return 0; }
  8. É assim que scanf funciona, ele considera espaço fim de leitura da variável. Use fgets. Ele lê tudo: printf("Qual seu nome: "); fgets(nome, 31, stdin); nome[strlen(nome)-1]='\0'; //remove o ENTER - fgets lê tudo, inclusvie o "ENTER"
  9. É por causa do condicional do while: while(ch = (fgetc(arq)) != EOF) você lê o primeiro caractere de cada linha e não imprime. Veja se inserindo um printf logo após resolve: while(ch = (fgetc(arq)) != EOF) { printf("%c",ch);
  10. você começa com maiorMedia = 0 e menor Media = 10.0 Faça um laço para somar cada coluna e tirar a "media" . Se "media" maior que "maiorMedia" faça "maiorMedia" igual a "media". Se "media" menor que "menorMedia", faça "menorMedia" igual a media;
  11. Bom, o nome tem mais de um caractere, então dever ser um array de char Sexo pode ser um caractere único (m ou f) char nome[31]; //nome com até 30 letras char sexo; scanf("%c", &sexo); //%c e não %s E a sintaxe correta para condicionais: if ((sexo == 'f') && (idade <30 )) //"==" para comparar e sem ";" no final, ok? { printf("%s ,ACEITA", nome); } else //else - caso contrário { printf("%s , NÂO ACEITA", nome); }
  12. Não sei se era essa sua dúvida, mas você pode usar a função "srand" e "rand()" para gerar números aleatórios em c #include <time.h> srand (time(NULL)); int civilizacao1 = rand()%4; int civilizacao2 = 0; do { civilizacao2 = rand()%4; } while (civilizacao2 == civilizacao1); O código acima vai gerar um número aleatório entre 0 e 3 para cada civilização e escolhe duas diferentes (civilizacao1 e civilizacao2). Ai você define, por exemplo, 0 - ROMANOS, 1 - AZTECAS, etc. Para gerar um número de ataque você pode usar o seguinte: int Ataque = ROMANS.Military_Force + (rand() % 51); Ataque vai ser um número aleatório entre 50 e 100.
  13. a função "novoAluno" pede dois parâmetros, você só passou um. Tenta assim. int main() { sala *sistemas2; sistemas2 = criaSala(); novoAluno("lucas",sistemas2); cout <<" "<< novoAluno("joão", sistemas2)<<endl; delete sistemas2; //tem que limpar a memória, ok? c++ não tem garbage collector return 0; } vai ser impresso o número "1";
  14. for(int i=0;i<22;i++){ for(int j=0;j<80;j++){ //CONTANDO CELULAS VIVAS AO REDOR DA CELULA ATUAL cont = 0; if(mundo[i-1][j-1] == '*' && mundo[i][j] != '*') { cont++; } if(mundo[i-1][j+1] == '*' && mundo[j] != '*') { cont++; } Nesta parte, o que irá acontecer no início do laço, quando i e j forem zeros? Quando será i-1 e j-1? E se j = 79, quanto será que será j+1? você está extrapolando os limites do array Outra coisa esse tipo de condicional if (a>1 && a < 2) é ambiguo. Separa com parenteses para evitar problemas: if ((a>1) && (a < 2)) Uma possível correção seria algo assim: for(int i=0;i<22;i++){ for(int j=0;j<80;j++){ //CONTANDO CELULAS VIVAS AO REDOR DA CELULA ATUAL cont = 0; if ((i > 0) && (j > 0)) if ((mundo[i-1][j-1] == '*') && (mundo[i][j] != '*')) cont++; if ((i >0) && (j < 79)) if ((mundo[i - 1][j + 1] == '*') && (mundo[i][j] != '*')) cont++; Veja os outros casos em que há possibilidade de extrapolar o limite do array. Outro erro é que você alterar o array dentro da função, mas passou como constante, então as alterações não são salvas. Retire o const: void alterageracoes(char matriz[][80]); As alterações da matriz dentro da função são salvas e então você passa ela novamente como argumento para calcular a próxima geração. Não há necessidade da outra matriz geracoes; Outro erro que encontrei foi na hora de alterar a matriz: if(cont==0 && mundo[i][j] =='*'){ geracoes[i][j]==' '; } O "==" é só para comparar. Para atribuir, utilize apenas um "="; if ((cont==0) && (mundo[i][j] =='*')) mundo [i][j]=' '; Veja se com isso resolve.
  15. Faltou o índice do array "guardar": for(i=0; i<500000; i++) { fgets(guardar[i].placa, 8, arq); } Recomento inclui o código abaixo antes do laço e logo após o "fopen" , para verificar se realmente o arquivo foi aberto: if(arq == NULL) { perror("Erro abrindo arquivo"); return(-1); }
  16. Para o windows, se quiser algo legalizado, como o seu computador é novo, tente comprar uma licença COEM, acho que é mais barata.
  17. Teste o código que coloquei e veja se funciona.
  18. você tem que preencher o "p" com os valores antes de imprimir: //(...) int i, j, troca = 0;//não esquecer de inicializar "troca" //(...) int *p; p = (int *) malloc(troca*sizeof(int)); memcpy (p, mostra, troca*sizeof(int));//copia o conteúdo de mostra em p for(i = 0; i < troca; i++ ) { printf("O elemento na [%d] posicao = %d \n", i, p[i]); } free(p);//tem que liberar a memória alocada antes de sair Acho que assim vai funcionar (não testei).
  19. Passa um jato de ar na placa-mãe e nas portas USB - aproveita e faz uma limpeza geral. Pode ser defeito na placa-mãe e ela estar acusando um falso curto ou pode ser um curto verdadeiro. Como você diz que funciona por horas antes de dar problema, pode ter relação com o aquecimento excessivo de algum componente, provavelmente o PCH que foi citado por @GabrielLP14 Infelizmente não sei dizer se há risco para as demais peças ou se é seguro continuar a usar assim mesmo.
  20. Pode ser que seja alguma sujeira metálica em alguma porta ou na própria placa-mãe - ou até mesmo defeito na placa-mãe. Acredito que seja isso o problema pois acontece exatamente como você descreveu quando alguém provoca um curto em uma porta USB (ex.: enfiar um clips de metal): som de desconexão seguido de desligamento das USBs até que o PC seja desligado e religado novamente. Não acho que seja algum problema de software (drivers).
  21. Pode ser que algum dispositivo ligado na USB esteja entrando em curto - quando isso acontece o computador desligar a alimentação da USB.
  22. clientes[i].nome == nomepesquisa Não é assim que se compara strings em c. Use "strcmp". Veja os posts anteriores.
  23. Tenta esse algoritmo: char temp; for(int i = 1; i < n; i++){ for (int j = 0; j < n-1; j++){ if(A[j] > A[j+1]){ temp = A[j]; A[j] = A[j+1]; A[j+1] = temp; } } }
  24. Ok, encontrei um erro de lógica no seu programa. você deve chamar o malloc após definir o n: printf("Digite o tamanho o vetor:\n"); scanf("%d",&n) A= (char*)malloc(n); Para ler e imprimir use "%c", pois o "%s" e para strings: printf("Digite os caracteres da string que voce quer:\n"); for(i=0; i<n; i++) { scanf("%c",&A[i]); } printf("Strings em ordem:\n"); for(i=0; i<n; i++) { printf("%c",A[i]); }
  25. você que ordenar strings ou caracteres dentro de uma string? ( o programa do link está fazendo o último).

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

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!