Ir para conteúdo
Fórum Script Brasil

Durub

Moderadores
  • Total de itens

    788
  • Registro em

  • Última visita

Tudo que Durub postou

  1. O que você tentou? struct produto { int cod_prod; double prec_unit; int qtde_vend; double valor_compra; double val_desc; double valor_pagar; } struct produto produtos[5]; Depois, é necessário ler os dados para a variável produtos. Para processar os dados, é necessário apenas fazer os cálculos: double soma = 0.0; double media; for(int i = 0; i < 5; i++) { produtos[i].valor_compra = produtos[i].prec_unit * produtos[i].qtde_vend; if(produtos[i].valor_compra < 500.0) { produtos[i].val_desc = 0.0; } else if(produtos[i].valor_compra < 1000.0) { produtos.val_desc = 0.10 * produtos.valor_compra; // não seria de 500 até 1000? ali diz 500 - 850, mas aí 850 - 1000 ficaria sem desconto... } else { produtos.val_desc = 0.15 * produtos.valor_compra; } produtos[i].valor_pagar = produtos[i].valor_compra - produtos[i].val_desc; soma += produtos[i].valor_pagar; } media = soma / 5; Basicamente, é isso. Abraços.
  2. Durub

    Arquivo em C

    Abra os arquivos utilizando a função fopen. Leia linha por linha utilizando a função fgets. Há diversas formas de ler os números individuais, tente fazer você mesmo essa parte e caso precise de mais ajuda nos avise. Para escrever o arquivo de saída, utilize a função fprintf. Abraços.
  3. Durub

    FUNCAO DE HASH SIMPLES

    Se a função hash for apenas essa, retire a chamada à função stringParaInt. Pode eliminá-la completamente e chamar diretamente: printf("A chave para a tabela (de 0 a %d) é: %d", tamanhoTabela-1, hash(dado));Abraços.
  4. Durub

    FUNCAO DE HASH SIMPLES

    Não entendi qual o problema. Sem a especificação do que é necessário implementar, não dá para auxiliar na solução. Por exemplo, retirando a chamada à stringParaInt, o código deveria, ao menos, funcionar. Outra coisa: ler da entrada padrão (stdin) utilizando a função gets não é muito seguro. Veja as seguintes referências, especialmente os exemplos da fgets: http://www.cmaismais.com.br/referencia/cstdio/gets/ http://www.cmaismais.com.br/referencia/cstdio/fgets/ Abraços.
  5. A lista duplamente encadeada já está implementada ou faz parte do exercício? Se não estiver, antes de tudo é preciso implementá-la. Aparentemente, esse link possui um material bom, com exemplos: http://br.ccm.net/faq/10254-lista-duplamente-encadeada Abraços.
  6. Sem tornar a lista simplesmente ligada em uma duplamente ligada essa operação é "complicada", ao menos em termos de performance. A lista precisa ser simplesmente ligada? (não possuir ponteiro para o elemento anterior, apenas para o próximo) Abraços.
  7. Excluir o primeiro usuário da fila é tranquilo: fila->inicio = fila->inicio->prox; Antes de "excluir" o usuário, guardar ele em uma variável auxiliar e inseri-lo na estrutura de dados desejada, olhando o código por cima, a função insert faz isso. Caso não tenha ficado claro, tente explicar um pouco mais a origem da dúvida: tem alguma parte em específico qual você não entende, se você domina a teoria dessas estruturas de dados, etc., que podemos auxiliar melhor! Abraços.
  8. O problema não é o fseek, e sim o modo utilizado no fopen. Veja mais informações aqui: http://www.cmaismais.com.br/referencia/cstdio/fopen/ Utilizando o modo correto (a), não é necessário utilizar o fseek. Abraços.
  9. Não há nenhuma diferença, é uma questão estética mesmo. Há quem acredita que * faz parte do tipo e portanto deve ficar junto ao char, há quem prefere junto ao nome da variável, há quem prefere colocar o * no meio ("char * ponteiro") e há quem não liga. Abraços.
  10. O problema está no while: há um ponto e vírgula, ";", antes do {. O código é equivalente a este: fahr = inicio; while (fahr <= fim) { } { celsius = (5.0/9.0) * (fahr - 32.0); printf("%4.0f %6.1f\n",fahr, celsius); fahr = fahr + incr; } O fahr nunca é incrementado, portanto o programa fica preso no loop do while indefinidamente. Para resolver, só tirar o ; antes do { após o while. Abraços.
  11. Durub

    Ajuda C

    1) Exemplo: #include <stdio.h> #include <math.h> struct ponto { int x, y; }; void distanciaEntreDoisPontos(struct ponto a, struct ponto b, struct ponto *distancia); int main() { struct ponto a, struct ponto b; a.x = 2; a.y = 4; b.x = 3; b.y = 3; struct ponto resultado; distanciaEntreDoisPontos(a, b, &resultado); printf("Distancia entre o ponto a e b:\nx: %d\ny: %d\n", resultado.x, resultado.y); return 0; } void distanciaEntreDoisPontos(struct ponto a, struct ponto b, struct ponto *distancia) { distancia->x = abs(a.x - b.x); distancia->y = abs(a.y - b.y); } 2) Primeiro, você precisa abrir o arquivo com fopen. Depois, precisa lê-lo com fscanf, fgets, fread, o que preferir. Se for só um número em um linha, fscanf seria o modo mais fácil. Após finalizar as operações com o arquivo, fechá-lo com fclose. Abraços.
  12. Durub

    Ajuda com exercício SPOJ

    Faltou o else. Código completo: #include <stdio.h> int main() { int n, i, x, y, result = 0; scanf("%d", &n); for (i = 0; i < n; i++) { scanf("%d %d", &x, &y); result = y - x; if (x < 0 && y > 0) { printf("%d", result - 1); } else { printf("%d", result); } } return 0; } Talvez você queira adicionar um \n no fim da string do printf, pois o printf não adiciona uma nova linha automaticamente como o puts faz. Abraços.
  13. Tire o & do scanf("%s", &nome) e coloque o & no scanf("%f", salbrut); Logo: #include <stdio.h> #include <stdlib.h> #include <strings.h> int main () { char nome[20]; float salbrut,inss,irrf,saliq,total=0; int x,depend; for (x=0; x&lt;=5; x++){ printf ("Entre com nome do Funcionario: "); //gets (nome); scanf("%s",nome); printf("Entre com salario bruto do funcionario: "); scanf("%f",&salbrut); // apos ser compilado o programa trava quando eu insiro valores nessa variavel printf("entre com a quantidade de dependentes: "); scanf("%d",&depend); total= depend+10; if (salbrut &lt;= 300) { saliq=salbrut-(salbrut*0.08); printf("salario bruto com desconto INSS 8%%:....",saliq); } } printf("\n\n"); system("pause"); }
  14. É preciso alocar as outras células. C->anterior = (Celula *) malloc(sizeof(Celula)); Depois da alocação pode-se referenciar as outras células normalmente.
  15. Coloque um if depois de ter lido a opção. Se a opção for igual a 10, feche o programa.
  16. Durub

    float 0.01 em C

    Para isso é necessário usar fixed point ao invés de floating point.
  17. Não é que está errado, mas é uma maneira antiga de se fazer as coisas. Teoricamente deveria funcionar, o compilador devia assumir "int" como tipo de retorno da função. Mas é, dependendo do livro tem essas coisas... principalmente dependendo da idade da edição.
  18. Aparentemente são strings que tem sua memória gerenciada pela máquina virtual. Podem ser usadas no C++/CLI (da Microsoft).
  19. Durub

    Help please!

    Você pode usar o Qt! Com ele dá pra criar programas com interface gráfica de uma forma portável. Abraços!
  20. Durub

    retornar número da coluna

    Faça uma procura na array/matriz inteira. Exemplo: int number_index(int number, int* array, int length) { int i; for(i = 0; i < length; ++i) { if(array[i] == number) { return i; } } return -1; } // number_index(2, A, 3); -> 1 Não testei, mas acho que deve funcionar. Abraços!
  21. Durub

    java

    Moverei o tópico. Abraços.
  22. Como está o seu código atualmente, o que conseguiu fazer, o que achou difícil? Abraços, Durub
  23. O que já tentou fazer? O que não conseguiu? Tem alguma dúvida? Abraços.
  24. Moverei o tópico para a área correta. Abraços!
×
×
  • Criar Novo...