-
Posts
1.065 -
Cadastrado em
-
Última visita
Tópicos solucionados
-
O post de Lucca Rodrigues em O que fazer quando tem fonte independente no quadripolo? foi marcado como solução
Já foi resolvido. O exercício estava incorreto
Quadripolos não têm fontes independentes.
-
O post de Lucca Rodrigues em Problema com Potencia em C foi marcado como solução
@Serena Variáveis na função printf() não levam &.
-
O post de Lucca Rodrigues em Pesquisa Sequencial em C++ foi marcado como solução
@fspjonny Olhe aqui:
Se o número 8 ta na posição 0 do vetor, e você atribui essa posição 0 à variável posicao, embora o número tenha sido encontrado, ela não vai passar nesse teste.
Você pode tentar imprimir logo de cara a posição se valor == vet[a], daí depois de imprimir, poderia atribuir 12 ao índice 'a', e verificar depois que sair do laço se 'a' < 12, pois 'a' é incrementado no laço até atingir valor 11 e só poderia ter valor 12 caso a atribuição fosse feita, ou seja, caso o número seja encontrado.
Não esqueça de incluir a biblioteca locale.h, você está usando funções dela.
Teste isso:
#include <iostream> #include <locale.h> using namespace std; int main(){ setlocale(LC_ALL,"Portuguese"); int valor, a, vet[] = {8,0,5,1,7,2,4,9,3,6,10}; cout << "Digite o valor a procurar: "; cin >> valor; for(a=0; a<sizeof(vet)/sizeof(int); a++){ if(valor == vet[a]){ cout << "\nEncontrado na posição: " << a; a = 12; break; } } if(a < 12){ cout << "\nNão encontrado!!!"; } return 0; }
-
O post de Lucca Rodrigues em Como imprimir um programa todo no estilo RPG foi marcado como solução
@Taynara Diniz Linux?
Daí não da pra usar a função PlaySound(), nem a função Beep() que o @herbertbahia usou...
Talvez possa usar o seguinte no lugar da função PlaySound() ou da Beep():
printf("\a"); É só 1 frequência, mas acho que serve para o que você quer. '\a' (BEL) é um caractere da tabela ASCII, pode ser usado pra reproduzir um som de beep.
Já a função Sleep()... Já tentou incluir a biblioteca unistd.h no lugar da windows.h? Não tenho como te dizer com toda a certeza, até porque meu sistema operacional é Windows, mas se não me engano, para microssegundos, a função seria usleep(), e para segundos, sleep().
-
O post de Lucca Rodrigues em Soma de 3 números foi marcado como solução
@KloZee Tente isolar as condições intercaladas por OU com parênteses:
Se ((n1 = 0) OU (n2 = 0) OU (n3 = 0)) Entao -
O post de Lucca Rodrigues em Condicionais IF em Linguagem C foi marcado como solução
@Malcolm X
O valor inválido ocorre caso: nota1 < 0 ou nota1 > 10 ou nota2 < 0 ou nota2 > 10.
Não tem E lógico no meio, talvez por isso tenha ocasionado o erro. Se tiver um E lógico, é esperado que 2 situações ocorram, que no caso seria ambas as notas possuírem valor inválido, para acusar erro. Trocando E por OU, se ao menos 1 das notas possuir valor inválido, já acusa erro.
Não imprima "tente novamente", leia o enunciado:
Simplesmente imprima "valor inválido" e retorne 0.
O identificador nessa função printf() está errado:
As variáveis são do tipo float, use %f ou algo como %.2f caso queira limitar as casas após a vírgula.
-
O post de Lucca Rodrigues em Colocar a primeira letra em Maiúsculo foi marcado como solução
@emanoel souza costa É claro que está deixando toda a string em letras maiúsculas, tem um laço de repetição pra fazer isso.
Uma dica: não use gets().
Se você inserir uma string cujo tamanho seja maior do que o tamanho declarado, poderá ocasionar um buffer overflow. Use a função scanf() e, por segurança, limite a quantidade de caracteres com os quais o usuário poderá entrar.
O identificador nesse caso seria %s, e para limitar, apenas insira o tamanho da string - 1 após o %. Como você declarou que o tamanho da string nome é 30, o correto seria usar %29s para deixar espaço para o caractere NULL, que encerra a string.
Você incluiu muitas bibliotecas e com certeza você não precisa de tudo isso. Imagino que você não saiba o que cada uma contém.
O que você pode fazer é o seguinte, veja esse pedaço da tabela ASCII:
Percebe que a diferença entre letras maiúsculas e minúsculas é sempre 32?
Você pode simplesmente usar uma estrutura condicional para avaliar se o primeiro caractere se trata de uma letra minúscula e, caso seja, poderia ser efetuada a subtração:
if(nome[0]>='a' && nome[0]<='z'){ // Verificando letra minúscula nome[0]=nome[0]-32; } Por fim, se você substituir getch() por getchar(), você vai precisar incluir somente a biblioteca stdio.h.
Pesquise sobre operadores em C.
!= corresponde a "diferente de".
++ se trata de um Incremento pós-fixado.
' ' é o caractere espaço.
A string se inicia em 0, a primeira letra estaria em nome[0], e mesmo assim, eu não usaria uma função para algo tão simples.
-
O post de Lucca Rodrigues em Antivirus apaga meu programa em C foi marcado como solução
@Juliano Colere Moreira Abra o Avast e siga esse procedimento:
Menu > Configurações > Geral > Exceções > Adicionar Exceção.
Pode adicionar tanto o ambiente quanto a pasta em que estão seus programas.
-
O post de Lucca Rodrigues em What does it mean in scanf C? foi marcado como solução
@AnonymousLPH Por que fez a postagem em inglês?
Nevermind... kk
Respondi essa pergunta ontem em uma postagem, vou só copiar e colar a resposta:
%[] é um identificador mais específico que o %s.
Com o %[], você pode escolher o que quer ler.
Dentro dos parênteses, você escreve os caracteres permitidos. A diferença é que para negar, você coloca um ^ antes dos caracteres.
com %[^\n], a string será lida até encontrar o \n que, nesse caso, é o enter que damos ao terminar de digitar. \n é o caractere negado, ou seja, tudo além dele será lido.
-
O post de Lucca Rodrigues em Luva anti estatica caseira foi marcado como solução
@dennis felix
Ajuda gerando menos eletricidade estática que uma luva de material sintético, principalmente se for 100% algodão.
O ideal é evitar vestes de nylon, poliéster, lã, etc. Use vestes de algodão e, se possível, pulseirinha com aterramento. Ficar descalço também é bom.
-
O post de Lucca Rodrigues em Exercício de Menor , Intermediário e Maior foi marcado como solução
@Pedrockz Não precisa comparar 1 por 1.
Como não tem um intervalo (por exemplo, poder apenas inserir números de 0 a 100), você poderia fazer o seguinte:
Maior tem que ser inicializado como um número menor que todos inseridos, e Menor, tem que ser maior que os mesmos, mas como você não sabe se os números inseridos serão negativos ou positivos, para isso, declare mais 3 variáveis e use a função fabs(), a fim de obter o valor absoluto dos números (por exemplo: num1 = -1, fabs(num1) = 1, num2 = 1, fabs(num2) = 1).
Dessa forma, some todos os valores absolutos dos números e atribua à Menor, e depois subtraia todos os valores absolutos dos números e atribua à Maior.
Depois, basta comparar Maior e Menor com todos os números inseridos e, por fim, se um número não for maior que Maior, nem menor que Menor, este é o intermediário:
#include <stdio.h> #include <stdlib.h> #include <math.h> int main() { double num1, num2, num3, fnum1, fnum2, fnum3, menor, inter, maior; printf("DIGITE UM NUMERO: "); scanf("%lf", &num1); printf("DIGITE UM SEGUNDO NUMERO: "); scanf("%lf", &num2); printf("DIGITE UM TERCEIRO NUMERO: "); scanf("%lf", &num3); fnum1 = fabs(num1); fnum2 = fabs(num2); fnum3 = fabs(num3); menor = fnum1+fnum2+fnum3; maior = -fnum1-fnum2-fnum3; printf("\n"); if(menor > num1){ menor = num1; } if(menor > num2){ menor = num2; } if(menor > num3){ menor = num3; } if(maior < num1){ maior = num1; } if(maior < num2){ maior = num2; } if(maior < num3){ maior = num3; } if(num1 < maior && num1 > menor){ inter = num1; } else if(num2 < maior && num2 > menor){ inter = num2; } else if(num3 < maior && num3 > menor){ inter = num3; } printf("MENOR = %.2lf \n", menor); printf("INTERMEDIARIO = %.2lf \n", inter); printf("MAIOR = %.2lf \n", maior); return 0; } @herbertbahia Muito mais que mostrar a solução: mostre a resolução.
É interessante explicar como chegar neste algoritmo que você propôs, ou adicionar comentários no mesmo para facilitar a compreensão por parte do usuário.
-
O post de Lucca Rodrigues em digite uma data valida foi marcado como solução
@Pedrockz Como "mes>0 && mes<13 && ano>0" está presente em todas as condições, da pra fazer desse jeito:
#include <stdio.h> #include <stdlib.h> #include <locale.h> int main() { setlocale(LC_ALL, "Portuguese"); int dia, mes, ano; printf("*VERIFICAÇÃO DE DATA VÁLIDA* \n"); printf("\n"); printf("DIGITE UM DIA: "); scanf("%d", &dia); printf("DIGITE UM MES: "); scanf("\n%d", &mes); printf("DIGITE UM ANO: "); scanf("\n%d", &ano); if(mes>0 && mes<13 && ano>0){ if((mes==4||mes==6||mes==9||mes==11) && (dia>0 && dia<=30)){ printf("%d/%d/%d eh valida", dia, mes, ano); } else if(mes==2 && (dia>0 && dia<=28)){ printf("%d/%d/%d eh valida", dia, mes, ano); } else if((mes==1||mes==3||mes==5||mes==7||mes==8||mes==10||mes==12) && (dia>0 && dia<=31)){ printf("%d/%d/%d eh valida", dia, mes, ano); } else{ printf("ESSA DATA EH INVALIDA"); } }else{ printf("ESSA DATA EH INVALIDA"); } return 0; } Se bem que poderia pedir dia, mês e ano de uma só vez:
printf("Entre com a data no seguinte formato DD/MM/AAAA: "); scanf("%d/%d/%d%*c", &dia, &mes, &ano); printf("%d %d %d", dia, mes, ano);
-
O post de Lucca Rodrigues em Questão Sobre circuitos digitais. foi marcado como solução
@Y.T É... Em geral, uma entrada deve ser configurada "ts" antes de determinado evento, e mantida por "th" após determinado evento para que o valor de entrada seja armazenado corretamente. Se um destes não for respeitado, não há alteração, o estado permanece como estava.
-
O post de Lucca Rodrigues em Converter de C para Python foi marcado como solução
@by Owen Você pode fazer o laço assim:
for variável in range(valor inicial, valor final, valor a ser incrementado)
E o printf ficaria assim:
print("Texto: {}" .format(variável))
Então, ficaria + ou - assim:
x = 0 y = 0 for y in range(0, 1000001, 1): x += y print("Soma dos números de 1 a 1000000: {}" .format(x)) print("\n\n\n")
-
O post de Lucca Rodrigues em Programar com números gigantes (Milhões) foi marcado como solução
@by Owen Da esse resultado mesmo... 500.000.500.000.
Teste isso:
#include <iostream> #include <stdio.h> int main() { long long x, y; for (x=0,y=0; y<=1000000; y++){ x+=y; } printf("%lld", x); return 0; } int é de -32767 até +32767 (16 bits)
long é de -2147483647 até +2147483647 (32 bits)
long long é de -9223372036854775807 até +9223372036854775807 (64 bits)
-
O post de Lucca Rodrigues em Programa de divisão sem div(/) e sem mod(%) foi marcado como solução
@Ragnarbrody Erros:
Faltou & nos scanfs;
Usou muitas bibliotecas, não precisou de todas, só stdio.h e locale.h são suficientes;
Não precisa colocar n1=n1, n1 é igual a si mesmo, pode deixar vazio dentro do for mesmo;
Está subtraindo 1 de n1 a cada passagem no laço, não faz sentido fazer isso;
Está somando 1 no resultado, mas poderia fazer isso dentro do for, com result2++;
O loop não deve persistir enquanto n1>=0, restos podem ser maiores que 0, deveria ser enquanto n1>=n2;
Lembre que o resultado é o quociente, chame de quociente;
Comente seu código, assim todos podem entender o que se passa nele.
//Divisão e módulo #include <stdio.h> #include <locale.h> int main() { setlocale(LC_ALL, "Portuguese"); int n1, n2, quociente, resto; printf("Insira aqui os números a serem divididos: "); printf("\nDividendo: "); scanf("%d", &n1); printf("\nDivisor: "); scanf("%d", &n2); printf("\nDivisão de %d por %d:", n1, n2); for (; n1>=n2; quociente++) { //Loop para subtrair n2 de n1, até que n1 seja menor que n2 n1 -= n2; } resto = n1; //Resto é o que sobrar de n1 printf("\nQuociente é: %d", quociente); printf("\nResto é: %d", resto); }
-
O post de Lucca Rodrigues em Como fazer Potenciação usando a estrutura de DO-WHILE ?? foi marcado como solução
@Ary_job Lembre de comentar seu programa, assim todos podem entender o que se passa nele, e é ainda mais útil para descobrir onde se quer chegar.
Seguindo o que eu disse anteriormente, você consegue desenvolver um algoritmo?
adicionado 48 minutos depois Tente interpretar esse algoritmo, e desenvolva o seu próprio a partir dele.
Segue a mesma lógica que eu havia mencionado, está bem mal otimizado kkk, tente encurtá-lo.
//Potenciação #include "stdio.h" #include "locale.h" int main() { double base, pot; int expoente, n; char novamente; setlocale(LC_ALL,"Portuguese"); printf("Bem-vindo(a) à calculadora (totalmente não otimizada) de potenciação!\n"); do{ printf("Entre com a base: "); scanf("%lf", &base); printf("Entre com o expoente: "); scanf("%d", &expoente); n = 0; pot = base; //3 casos: expoente = 0, < 0 e > 0, nesses 2 últimos podendo ser = 1 ou = -1 if (expoente == 0){ //Qualquer número elevado a 0 é 1 printf("O resultado da potenciação é: 1"); } else if (expoente > 0){ //Fazer pot * base o tanto de vezes que corresponde ao expoente do { pot = pot * base; n += 1; } while(n + 1 < expoente); if (expoente == 1){ //Qualquer número elevado a 1 é ele mesmo printf("O resultado da potenciação é: %.4lf", base); } else { printf("O resultado da potenciação é: %.4lf", pot); } } else if (expoente < 0){ //Mesma mecânica para expoente > 0, mas inverte-se pot no final expoente = -expoente; do { pot = pot * base; n += 1; } while(n + 1 < expoente); if (expoente == 1){ //Qualquer número elevado a -1 é 1/ele mesmo printf("O resultado da potenciação é: %.4lf", 1/base); } else { printf("O resultado da potenciação é: %.4lf", 1/pot); } } printf("\n\nQuer calcular novamente (s/n)? "); scanf("%s", &novamente); //Teste para calcular novamente } while (novamente == 's'); return 0; }
-
O post de Lucca Rodrigues em Leitura de Capacitor Cerâmico foi marcado como solução
@olliver.soul É de 50V, modelo Z5V. Para esse modelo, menor capacitância é 4700pF. Este ai é de 22nF.
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