Ir ao conteúdo
  • Cadastre-se

Lucca Rodrigues

Membro Pleno
  • Posts

    1.081
  • Cadastrado em

  • Última visita

Tudo que Lucca Rodrigues postou

  1. @Andersonfxj Antes do controle ser transferido pra fora do loop, o índice i é incrementado mais uma vez, o que torna a condição do for falsa. Então i = 8. O vetor não tem posição de índice 8, então não vai conseguir fazer essa atribuição, e nem precisa dela. O mesmo vale pra isso: Você tem que ler os valores de x e y, não de array[i]. E não se esqueça do &. "seu programa deverá escrever a soma dos valores encontrados nas respectivas posições x e y" x e y são índices, assim como i, então use eles pra indexar array. Dessa forma, vai conseguir os valores nas posições x e y.
  2. @ItoLuca Se alguém sabe fazer um código com isso, sabe fazer sem isso também, daí a gente acaba estranhando Você pegou o código daqui e retirou os comentários do nome do autor... https://gist.github.com/hdelei/dd77094c96834a8fb56b Que tal tentar fazer um código? Sem plagiar nem nada... Daí eventualmente podemos tentar te ajudar!
  3. @voicewp Sempre deixe a main() como a primeira função no seu programa. Acima dela apenas os protótipos. Seria melhor se não declarasse nada global, fica difícil ter um controle e saber exatamente onde está usando a variável. O que fez com "struct Alunos A[TAM]" foi declarar um vetor estático, a memória já foi alocada e não vai conseguir alocar nada. O que está atrapalhando é que na main() você declarou outra variável com o mesmo nome. NULL pode ser definido pela implementação como um 0, ou por uma expressão com type cast como (void*) 0. De qualquer forma seria melhor fazer a comparação A != NULL. Saberia me dizer o motivo das duas funções abaixo da scanf()? Essas funções não servem para serem usadas com a stdin e nem precisa delas nesse caso. Se quer solucionar o suposto "problema misterioso" da scanf() que algumas vezes não lê o que tenta digitar, pode só colocar um espaço no começo da string de formatação. A scanf() vai ler e ignorar os caracteres de espaço em branco, então qualquer \n que sobrar de outra leitura vai ser ignorado. scanf(" %d", &entrada); Não precisa chamar printf() 11 vezes. A função concatena strings subsequentes: printf("string 1\n" "string 2\n"); Antes de incluir uma biblioteca, tenha a certeza de que vai usar seus recursos. Não achei nada dessas 3 últimas no seu código.
  4. @Marco Capella Tem que ser o mais próximo de 100k possível, dois curtos não é uma opção. Você não vai encontrar resistores de 50k. 51k seria o valor comercial mais próximo. Daí precisa saber como o potenciômetro é conectado. Ao rotacionar ele totalmente, um resistor vai ser de 100k e o outro vai ser praticamente um curto (talvez prefira colocar um resistor de 1 ohm). Precisaria identificar qual é qual aí no circuito pra saber onde conectar os resistores, se colocar invertido o volume estaria no mínimo. Se tiver assim, por exemplo: Você gira pra direita, aumenta a resistência entre o pino da esquerda e o do meio e diminui a resistência entre o pino da direita e o do meio, da mesma forma que mostrei na primeira imagem que postei aqui. Você pode observar isso com um multímetro.
  5. @Marco Capella Dá uma olhada, é bem intuitivo: Você tem no caso um divisor resistivo variável. Se quer um fixo, use dois resistores: A soma do valor dos dois resistores tem que dar o valor do potenciômetro, no seu caso, 100k. Pra 50% talvez consiga achar alguns resistores de 51k, procure sempre valores comerciais, se atente a potência.
  6. @Ruan1518 Não use acentuação quando for dar nome pra suas variáveis, funções, etc. Pode funcionar na sua máquina, mas veja, aqui não funcionou. Dá uma olhada no resultado quando testamos o exemplo 1: Zeros à esquerda não deveriam aparecer, precisa corrigir isso. Use type cast para inteiro: n = (int)decimal; Funciona, mas novamente, aparecem zeros à esquerda:
  7. @Ruan1518 Tentou começar? Mostre o que tentou fazer.
  8. @samucao82 i++ é o mesmo que i += 1, que é o mesmo que i = i + 1. Seria um pouco estranho nos depararmos com algo assim: for(i = 0; i < x; i = i + 1) Quando se pode simplesmente escrever i++. Ou ainda: for(i = 0; i < x; i -= -1) Mais estranho ainda. Mas nenhuma forma está errada se a ideia é incrementar o valor de i, a questão é qual forma de escrever é mais conveniente.
  9. @samucao82 O incremento funciona de modo a atualizar o valor do índice: for(i = 0; i < tVetor; i = i + 7) Ou: for(i = 0; i < tVetor; i += 7) ano[i] vai ser igual a 7, a atribuição vem justamente antes do if, não precisa verificar isso. Aliás, o certo é == pra comparação, = é atribuição.
  10. @devair1010 O que tenho aqui sempre mostrou isso daí, pra ocultar certos segmentos, mas tudo aparece maximizado. Quando você abre o projeto, eles aparecem minimizados? Se sim, isso acontece com todos os projetos?
  11. @donutLukke você está declarando comando e posicao como char, 1 caractere somente. Se quer mais de um caractere, use uma string. char posicao[6] = "Norte"; Com espaço pra 6 caracteres: entre norte, sul, leste e oeste, a quantidade máxima de caracteres é 5, e precisa de +1 pro \0, terminador da string. É equivalente a: char posicao[6] = {'N','o','r','t','e','\0'}; O que vai mudar: Agora esqueça %c, não está mais tratando char comum, vai usar %s para strings. Em scanf() não vai precisar do & pra ler strings, a função já vai ler e gravar a partir do índice 0 da string. Não vai conseguir comparar strings com ==, precisa comparar caractere a caractere, pode usar strcmp() da string.h.
  12. @adrjunim Dá pra fazer com Arduino... Sensor de presença + módulo MP3 ou módulo gravador e reprodutor de voz.
  13. @Vitor Nata Zanetta Santos Você inicializou menor com 0, então se inserir apenas valores maiores que zero, menor vai continuar com valor 0. Você pode atribuir o primeiro elemento de `p` às variáveis `menor` e `maior` para inicializar. Faça isso na primeira passagem pelo loop: use if para verificar se o valor do índice `i` é 0. Aliás... Vetores em C começam pelo índice 0, e o último elemento tem índice N-1. for(i = 0; i < q; i++) { } `q` ou `soma` tem que ser do tipo ponto flutuante pra que o resultado da operação seja um ponto flutuante. float soma = 0.0f; Caso contrário, vai ser uma média com valor inteiro.
  14. @Talyson Maia Pesquise em inglês, é mais fácil de achar. https://gcc.gnu.org/onlinedocs/cpp/Object-like-Macros.html#Object-like-Macros Ou então, em português: O corpo da macro termina no final da linha onde se encontra "#define". Você pode continuar a definição em várias linhas, se necessário, usando barra invertida. Quando a macro for expandida, no entanto, tudo estará em uma linha.
  15. @Kaua__ Sim é tudo Windows. GetStdHandle() GetConsoleMode() SetConsoleMode() FlushConsoleInputBuffer() WaitForSingleObject()
  16. @Kaua__ Pode tentar a WaitForSingleObject(), desativando MOUSE_INPUT e WINDOW_INPUT com SetConsoleMode(), já que quer entrada somente do teclado. Os retornos que te interessam para Wait() são: WAIT_OBJECT_0 - O estado do objeto especificado é sinalizado. WAIT_TIMEOUT - O intervalo de tempo limite decorrido e o estado do objeto não são sinalizados. Então se o segundo argumento de Wait() for 10000 (10 segundos) e o retorno for WAIT_TIMEOUT, o usuário não digitou nada nesse período, mas se for WAIT_OBJECT_0, então você pode chamar scanf() ou alguma outra função. int x; DWORD fdwMode, fdwOldMode, ret; HANDLE hStdIn = GetStdHandle(STD_INPUT_HANDLE); // Salvando modo atual GetConsoleMode(hStdIn, &fdwOldMode); // Desativando MOUSE_INPUT e WINDOW_INPUT fdwMode = fdwOldMode & ~(ENABLE_MOUSE_INPUT | ENABLE_WINDOW_INPUT); SetConsoleMode(hStdIn, fdwMode); // Descarta registros de entrada no buffer antes de chamar Wait() FlushConsoleInputBuffer(hStdIn); printf("Insira um valor inteiro: "); if ((ret = WaitForSingleObject(hStdIn, 10000)) == WAIT_TIMEOUT) { printf("\nSe passaram 10 segundos!"); } else if (ret == WAIT_OBJECT_0) { scanf(" %d", &x); printf("Valor inserido: %d", x); } // Restaura o modo original SetConsoleMode(hStdIn, fdwOldMode);
  17. @lauro viana cada se tem um fimse, e você se esqueceu de alguns // 3 se e só 2 fimse se media >= 7 entao escreval("aluno aprovado!") senao se media
  18. @Larissa Maia Se sabe a definição de um vetor, então teria ao menos uma ideia de como trabalhar com ele: um conjunto de espaços de memória contíguos. E veja, qualquer um desses elementos pode ser referenciado com o nome do vetor seguido pelo número de posição do elemento entre colchetes. vet[0] - elemento de índice 0 (primeiro elemento) vet[1] - elemento de índice 1 (segundo elemento) Como acessar todos os elementos em sequência para fazer a comparação? Um loop, como mostrou o colega @Danilo Namitala . Lembrando que sua função recebe o vetor gabarito e o vetor resposta. Mostre o que tentou fazer até então.
  19. @LucasrodriguesP Fica mais enxuto com if. Inclusive se as instruções depois dos case's forem iguais, pode resumir: switch (letra1) { case 'a': case 'e': case 'i': case 'o': case 'u': cout << "isso eh vogal"; break; default: cout << "isso eh consoante"; } Mas ainda dá mais linhas que usar if.
  20. @LucasrodriguesP Você tem que comparar letra1 com cada vogal, e não simplesmente colocar uma vírgula e as demais vogais como fez instintivamente acredito eu. if (letra1 == 'a' || letra1 == 'e' || letra1 == 'i' || letra1 == 'o' || letra1 == 'u') cout <<"vogal"; else cout<<"consoante"; Não. Você pode recorrer ao default: switch (letra1) { case 'a': cout << "isso eh vogal"; break; case 'e': cout << "isso eh vogal"; break; case 'i': cout << "isso eh vogal"; break; case 'o': cout << "isso eh vogal"; break; case 'u': cout << "isso eh vogal"; break; default: cout << "isso eh consoante"; } Se o controle não for transferido pra nenhum case, será transferido para default.
  21. @Lipeco A memória alocada foi pra ponteiro1, um vetor dinâmico. ponteiro2 aponta pra segunda posição do vetor, então ponteirodePonteiro[0][0] seria equivalente a ponteiro1[1], e ponteirodePonteiro[0][3] seria equivalente a ponteiro1[4]. Se a memória alocada fosse pra ponteirodePonteiro, então precisaria inicializar, pensei que fosse isso que tentava fazer. De certa forma, não precisa de ponteirodePonteiro, você pode fazer um ponteiro apontar pra mesma posição de memória que ponteiro1 ou ponteiro2 sem problemas, vai conseguir acessar os valores da mesma forma.
  22. @Lipeco Exibir o que? ponteirodePonteiro recebeu o endereço de ponteiro2, mas você não alocou memória pra ele, não é uma matriz dinâmica. // Matriz dinamica int i; int** mat = (int**)malloc(rows * sizeof(int*)); for(i = 0; i < rows; i++) { mat[i] = (int*)malloc(cols * sizeof(int)); } // Desalocando for (i = 0; i < rows; i++) { free(mat[i]); } free(mat); E mesmo assim não haveria como exibir nada sem antes inicializar ou coisa do tipo. O que está tentando exibir?
  23. @Gabrielbxs O que espera que façamos? É seu trabalho. Tentou começar? Já recebeu dicas do colega acima... Use o botão Code para postar o que já fez.
  24. @Ilanez Santos Tentou começar? Use o botão Code pra postar o que já fez.

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!