
Durub
Moderadores-
Total de itens
788 -
Registro em
-
Última visita
Tudo que Durub postou
-
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.
-
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.
-
O que você tentou? Abraços.
-
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.
-
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.
-
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.
- 1 resposta
-
- lista encadeadas
- c
- (e %d mais)
-
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.
-
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.
-
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.
-
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.
-
Não visualizo o resultado do programa
pergunta respondeu ao Walter Almeida Cerqueira de Durub em C, C++
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. -
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.
-
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.
-
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<=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 <= 300) { saliq=salbrut-(salbrut*0.08); printf("salario bruto com desconto INSS 8%%:....",saliq); } } printf("\n\n"); system("pause"); }
-
É preciso alocar as outras células. C->anterior = (Celula *) malloc(sizeof(Celula)); Depois da alocação pode-se referenciar as outras células normalmente.
-
Coloque um if depois de ter lido a opção. Se a opção for igual a 10, feche o programa.
-
Para isso é necessário usar fixed point ao invés de floating point.
-
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.
-
Aparentemente são strings que tem sua memória gerenciada pela máquina virtual. Podem ser usadas no C++/CLI (da Microsoft).
-
Você pode usar o Qt! Com ele dá pra criar programas com interface gráfica de uma forma portável. Abraços!
-
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!
-
Como está o seu código atualmente, o que conseguiu fazer, o que achou difícil? Abraços, Durub
-
O que já tentou fazer? O que não conseguiu? Tem alguma dúvida? Abraços.
-
Moverei o tópico para a área correta. Abraços!