Ir ao conteúdo
  • Cadastre-se

Midori

Membro Pleno
  • Posts

    3.563
  • Cadastrado em

  • Última visita

Tudo que Midori postou

  1. Esse código está muito bagunçado, tem vários erros de caracteres em lugares indevidos e não segue as regras básicas de escopo. Além disso você replica os includes ao longo do código. Isso não é necessário, basta colocar no início do código. Nesse trecho por exemplo, void consultanome(int x,int xidade[100], char xnome[30][100], char xsexo[1][100]) ; { int p,;Essa vírgula após a declaração de p, não devia estar aí..Outro trecho: void tela(); { printf(" ------------------------");Esse ; após a tela() também não devia estar aí... E essa função está no escopo de main!Faça uma revisão na estrutura do seu código e tente corrigir esses erros.
  2. Você pode ter digitado errado o nome da função, ou chamado uma função que não está sendo linkada. Em qual linha está dando problema e qual é o nome da função que não foi referenciada?
  3. Você continua com essa linha no programa? scanf("%d",vetResidencias[i].medidaConsumo=geradorNumeros())
  4. Essa linha está errada. scanf("%d",vetResidencias[i].medidaConsumo=geradorNumeros());Você quer atribuir o gerador ao elemento da struct ou entrar com algum valor?
  5. altere o scanf para scanf("%[^\n]s", cliente[i])E corrija a declaração de cliente, pois o número de linhas vem antes de colunas, p.ex: tipo nome[linhas][colunas];
  6. Midori

    visual c++

    Basta usar a função sprintf
  7. Da forma que foi declarada a variável nome, não vai der certo. Pois você apenas declarou um vetor de 10 caracteres. Para cadastrar os nomes, você vai ter que usar uma matriz. Altere a declaração do nome para: char nome[10][20]; Assim você vai poder cadastrar 10 nomes com no máximo 20 letras. E o operador & não é necessário apenas no scanf do nome. Outra coisa que reparei agora é que a comparação do seu if está errada: if (codigo[i] = codigoconsultado) Dessa forma você está atribuindo codigoconsultado ao elemento do vetor. A comparação de igualdade deve ser com == if(codigo[i] == codigoconsultado)
  8. Seu for está errado, pois deve ir até i < 10 para percorrer todos os elementos do vetor. Da forma que está só vai pegar o primeiro elemento... E no scanf do nome, como se trata de string, não use o operador &
  9. Dê mais detalhes sobre o problema... Dá erro de compilação? Olhando rapidamente o código, porque você usa um for que vai de 0 até i < 1? E na linha do strstr, você está procurando um valor inteiro na string? Além disso há um colchete a mais.... O printf também parece estar errado, pois nome, codigo e salario, parecem ser elementos de uma struct...
  10. O problema é na divisão. Quando você divide dois números inteiros, o resultado é truncado. A solução é forçar o resultado usando cast ou dividir por 1.0 para ter pelo menos um operando decimal.
  11. Midori

    Projeto Les

    Qual a utilidade, onde é aplicado? Você usou alguma das linguagens abordadas nessa seção do fórum?
  12. Você tentou fazer o que eu falei acima?
  13. Como a operação está retornando int, você pode resolver com cast: (double)1/n ou 1.0/n...
  14. Midori

    ling c

    Basta verificar cada caractere da frase e contar os espaços... palavra = 1 ... if(frase == ' ') palavra++ ...
  15. O cálculo da média está errado, pois você está dividindo n4 por 4 para só depois somar os outros termos. Use parênteses para acertar a ordem de precedência da operação. Tem um erro na linha do printf que pede a nota da recuperação, pois há uma vírgula onde não devia. E o return 0 deve terminar com ;
  16. Sobre evitar que o usuário execute o programa, porque não compilar na forma de library/dll? Já que as funções serão usada apenas em outro programa. Sobre encriptação, procure pelos tipos básicos de cifragens: substituição, transposição, manipulação de bits..
  17. Uma forma de facilitar o processo, é pegar os maiores valores e os índices deles no vetor, for(i = 0; i < MAX; i++) for(n = 0; n <= i; n++){ if(vet[n] > pri){ pri = vet[n]; ind1 = n; } if(vet[n] > seg && vet[n] != pri){ seg = vet[n]; ind2 = n; } }Fazer um swap dos indices caso ind1 seja maior que o 2 e depois basta somar for(i = ind1; i <= ind2; i++) s += vet[i];
  18. O primeiro exercício pode ser facilmente resolvido com ponteiro, numa linha apenas, veja while(*txt++ = (*txt == de) ? para : *txt ) ; Se quiser usar a notação de vetor, a lógica é simples. No loop basta comparar o elemento com o caractere 'de' e caso seja verdadeiro atribua 'para': if(txt[i] == de) txt[i] = para;
  19. Primeiramente é preciso entender o que é uma macro e qual a diferença e relação a uma função (ou procedimento em outras linguagens). A macro nada mais é que um recurso do compilador e não faz parte da linguagem. 'define' não é uma palavra chave do C/C++, mas uma instrução para o pré-processador que funciona como uma espécie de ctrl+c/ctrl+v. Por exemplo, se eu faço: #define soma(x,y) (x + y) Durante a compilação, o compilador vai substituir, por exemplo 'soma(1,2)' por (1 + 2). Mas se soma fosse uma função, int soma(int x, int y); Toda vez que a função for usada no código, o compilador vai substituir pelo endereço na memória onde está a função e chamar esse endereço. Portanto, toda vez que você fizer uso da função soma, o código fazer um CALL ENDEREÇO, guardar na pilha (PUSH) o endereço em que a função chamadora parou, assim como os argumentos passados à função. E após o término da função pegará novamente o endereço da pilha POP, para retornar ao ponto de parada. Dito isso, entendo que é o programador que deve determinar o que é melhor: usar macro e mais recurso de memória; ou função e mais processamento (já que haverá mais instrução para empilhar/desempilhar e chamar a função). É claro que esse é um exemplo simples, mas há casos em que além disso o programador pode levar em conta também a legibilidade/clareza do código.
  20. 1) Tire o +1 da soma. 3) Use float, pois não há necessidade de usar precisão dupla. Portanto: float b1,b2,b3,b5. O scanf deve receber %f (o printf também) no primeiro parâmetro. Além disso, a função main deve ser sempre int, portanto: int main(int argc, char *argv[]) Para resolver o 5, você pode definir PI dessa forma, #define PI 3.1416 E no printf efetuar o cálculo assim, printf("Area = %dm2\n", (int)(PI * (r * r)));
  21. O i é um contador e no seu programa serve para indicar o índice do vetor e limitar a quantidade de ciclos (já que o loop termina quando i <= dias). Na instrução m, supondo que i seja 2, é o mesmo que m[2]. Logo, é o elemento de índice 2 do vetor. soma = soma + 1 vai incrementando soma se a temperatura for < 0. Se fosse soma = soma + m a operação seria com base no valor da posição i do vetor. Esse exercício também poderia ser resolvido assim: int temp, dias, qtd = 0, i = 0; printf("Dias: "); scanf("%d", &dias); while(i < dias){ printf("Temperatura: [%d]: ", ++i); scanf("%d", &temp); if(temp < 0) qtd++; } printf("Dias com temp. abaixo de zero = %d\n", qtd); return 0;
  22. Você vai usar o vetor em outra parte do programa? Se não for, não vejo necessidade de usar. Mas para seu programa funcionar corretamente, atribua i = 0 (no lugar de i = 1). Além disso a soma deve retornar a quantidade de dias, e não a soma dos dias, por isso deve ser: soma = soma + 1. E o printf da soma deve ficar fora do while.
  23. A opção resolvido fica logo abaixo do post, ao lado de denunciar, citar..
  24. Você atribuiu a quantidade de dias, mas não atribuiu as temperaturas no vetor. Isso não faz sentido: m[dias] = dias A alocação deve ser assim: int m[dias], apenas após atribuir a quantidade de dias. Feito isso, você vai usar o loop para atribuir as temperaturas. while(i < dias){ scanf("%d", &m); ... Isso também não faz sentido: soma = soma + m[dias]. Se quiser somar as temperaturas, teria que ser assim: soma = soma + m
  25. O compilador emite alguma mensagem de erro? Veja se a opção Graphics library está marcada. Fica em Options > Linker > Libraries

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