Durub
-
Total de itens
788 -
Registro em
-
Última visita
Posts postados por Durub
-
-
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. -
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. -
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!
estrutura de dados do tipo registro
em C, C++
Postado · Editado por Durub
O que você tentou?
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.