Ir para conteúdo
Fórum Script Brasil

good guy

Membros
  • Total de itens

    19
  • Registro em

  • Última visita

Tudo que good guy postou

  1. Olá Luis, Em um outro post já respondi com um código semelhante ao que você quer. Mas vou repetir aqui: #include<stdio.h> #include<conio.h> #include<stdlib.h> main() { int DiaNasc, MesNasc, AnoNasc, DiaAtual, MesAtual, AnoAtual, Anos, Meses, Dias; printf("Digite a data do nascimento \n"); // O formato é dd mm yyyy . Não utilize a barra invertida !!! scanf("%d %d %d",&DiaNasc, &MesNasc, &AnoNasc); fflush(stdin); printf("Digite a data de hoje: \n"); // // O formato é dd mm yyyy . Não utilize a barra invertida !!! scanf("%d %d %d", &DiaAtual,&MesAtual, &AnoAtual); fflush(stdin); Anos = AnoAtual - AnoNasc; Meses= MesAtual- MesNasc; Dias = DiaAtual - DiaNasc; if ((Anos<0) || ((Anos==0) && (Meses<0)) || ((Anos==0) && (Meses ==0) && (Dias<0))) printf("Data de nascimento invalida !"); else { if (Meses < 0) { Anos = Anos -1; Meses = Meses + 12; } if (Dias < 0) { if (Meses > 0) Meses = Meses - 1; else Anos = Anos -1; switch (MesNasc) { case 2: { if (AnoAtual % 4 == 0) Dias = Dias + 29; else Dias = Dias + 28; break; } case 4:case 6:case 9:case 11: { Dias = Dias + 30; break; } default: Dias = Dias + 31; }; } printf("Idade = %d ano(s), %d mes(es) e %d dia(s) \n\n", Anos, Meses, Dias); getch(); system("PAUSE"); } } Falta acrescentar o método que calcula em semanas, mas isso não é difícil. você pode resolver ...
  2. Olá Steel, você já verificou que ao clicar com o botão direito no arquivo compilado, você pode ir em propriedades => Programa=> Executar=>Maximizado e também na aba Tela => Uso=> Tela Inteira e assim poderá atenderá o que você quer?
  3. Conheço um código do Jaime Evaristo que calcula sem problemas: #include<stdio.h> #include<conio.h> #include<stdlib.h> main() { int DiaNasc, MesNasc, AnoNasc, DiaAtual, MesAtual, AnoAtual, Anos, Meses, Dias; printf("Digite a data do nascimento \n"); // O formato é dd mm yyyy . Não utilize a barra invertida !!! scanf("%d %d %d",&DiaNasc, &MesNasc, &AnoNasc); fflush(stdin); printf("Digite a data de hoje: \n"); // // O formato é dd mm yyyy . Não utilize a barra invertida !!! scanf("%d %d %d", &DiaAtual,&MesAtual, &AnoAtual); fflush(stdin); Anos = AnoAtual - AnoNasc; Meses= MesAtual- MesNasc; Dias = DiaAtual - DiaNasc; if ((Anos<0) || ((Anos==0) && (Meses<0)) || ((Anos==0) && (Meses ==0) && (Dias<0))) printf("Data de nascimento invalida !"); else { if (Meses < 0) { Anos = Anos -1; Meses = Meses + 12; } if (Dias < 0) { if (Meses > 0) Meses = Meses - 1; else Anos = Anos -1; switch (MesNasc) { case 2: { if (AnoAtual % 4 == 0) Dias = Dias + 29; else Dias = Dias + 28; break; } case 4:case 6:case 9:case 11: { Dias = Dias + 30; break; } default: Dias = Dias + 31; }; } printf("Idade = %d ano(s), %d mes(es) e %d dia(s) \n\n", Anos, Meses, Dias); getch(); system("PAUSE"); } }
  4. Olá, estude este código e veja se ajuda: struct dado aluno[2]; int i,j; float aux,soma,media; clrscr(); for(i=0;i<2;i++){ printf("\n\Digite o nome do %d§ aluno: ",i+1); gets(aluno.nome); for(j=0;j<4;j++){ printf("Digite o valor da %d¦ nota do aluno:",j+1); scanf("%f",&aux); aluno.nota[j]=aux; fflush(stdin); } } Minha sugestão : ...... for(j=0;j<50;j++){ printf("Digite a disciplina do aluno:"); scanf("%s",&nomed); aluno.disciplina[j]=nomed; fflush(stdin); }
  5. Ola ovelha, Retire o cont_c referente a essas variáveis nas printf e substitua pelas nova variáveis (codigo, modelo[30], marca[30], preço. Abaixo de scanf coloque fflush(stdin); Tire o cont_c e cont_m. A formatação não é %u, mas: %d , codigo %s , modelo[50] %s , marca[50] %.2f , preço // tire a cedilha e coloque c Defina uma constante k: #define const float k = (0.30 * preço) + preço Nas últimas linhas do código ficará assim: printf("preço: %.2f \n", func[ i ].k);
  6. Olá Ovelha, Crie duas constantes float assim: float percentual = (p / 100.0); // x% constante percentual float k = percentual+ 0.3*valor;//constante k p é a variável no lugar de idade. valor é a variável no lugar do nome. Ex.: p==5; O resultado seria assim: printf("O resultado e : %f ", k); Veja bem refaça o programa para atender a seu gosto. Sugestão: Troque funcionario por Calculo, nome por float valor e idade por float p e mantenha n como o número de iterações.
  7. Olá ovelha, Eis um exemplo simples tirado da internet pelo Google: /* EXEMPLO BASICO DE STRUCT EM C DESENVOLVIDO POR MARCOS VINICIUS EMAIL: MARCOS.VINICIUS.SECURITY@GMAIL.COM */ #include <stdio.h> #include <stdlib.h> struct funcionario { char nome[50]; int idade; }; main () { struct funcionario func[50]; int i = 0; //int n; //variavel "n" de numero de iterações sugerida por mim /*ATENÇÃO ovelha : para variar o numero de iterações faça assim: printf("Digite o numero de funcionarios a cadastrar: "); scanf("%d",&n); fflush(stdin); for (i=1;i<n;i++)*/ for (i=1;i<3;i++) { printf("\nNome do %uo Funcionario: ", i); scanf("%s", &func[ i ].nome); printf("Idade do %uo Funcionario: ", i); scanf("%u", &func[ i ].idade); }; system("clear"); /*ou system("cls"); Limpa a tela acima e emite o relatório abaixo. Se clear não funcionar use o cls. Dica sugerida por mim*/ //for (i=1;i<n;i++) //variavel "n" de numero de iterações sugerida por mim for (i=1; i<3; i++) { printf("-----------------------------------\n"); printf("Nome do %uo Funcionario: %s ", i, &func[ i ].nome); printf("\nIdade do %uo Funcionario: %u \n", i, func[ i ].idade); printf("-----------------------------------\n"); printf("\n"); }; system("PAUSE"); //Acrescentado por mim. Conclue o programa pedindo para pressionar uma tecla return 0; }
  8. good guy

    Programa em C

    Olá Rodrigo, Para trabalhar com arquivos textuais, você precisa aprender a declarar um ponteiro para o tipo FILE. Ex.: FILE *arq; arq = fopen("alunos.txt", "r"); /*r abre um arquivo existente para leitura de dados; se o arquivo não existir irá ocorrer um erro.*/
  9. Limpe a memória utilizando fflush(stdin); abaixo da função scanf. Quando há recursividade, isto é, retorno ao início do programa após retornar um resultado, pode haver acúmulo de dados na memória e gerar erros no novo cálculo.
  10. good guy

    Emitir Relatório

    Bom dia, Estou tentando editar este código para emitir um relatório de valores fornecidos em um looping quando falta valor para realizar combinação com valor pago ou quando ultrapassa o valor pago. O programa emite sem problema um relatório quando a soma de valores fornecidos bate com o valor pago. É possível? #include <iostream> #include <stdio.h> #include <conio.h> /* Name: Combinação de Valores de Ordem Bancária Copyright: 2010 Author: Eduardo Vieira Machado Date: 23/07/10 16:00 Description: Uso de looping para calcular e comparar valores */ int main(void) { int i,n,p=0; float Med; //vetor de valores das medições //float *Med= new float[n]; char resp; float soma=0; float valorpago; system("cls"); //limpa a tela acima printf("***********************************************************************\n"); printf(" COMBINACAO DE VALORES DE ORDEM BANCARIA\n\n"); printf("***********************************************************************\n\n\n"); printf("Separe por ponto as casas decimais\n\n"); printf("\n\n\Digite o valor pago: "); scanf("%f",&valorpago); fflush(stdin); printf("\n\nDigite o numero de medicoes a somar: "); scanf("%d",&n); fflush(stdin); for (i = 0;i<n;i++) //gera um looping para inserir valores em sequência { printf("\nDigite o %2do. valor: ",i+1 ); scanf("%f",&Med);//scanf("%f",&Med); fflush(stdin); soma = soma + Med; //soma a cada looping os valores que são inseridos printf("\nTotal: %.2f\n",soma); fflush(stdin); { if (soma==valorpago){ printf("\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n\n"); printf("VALOR ENCONTRADO. BATE COM VALOR PAGO. BAIXE OS DEBITOS !!!\n\n"); printf("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n\n"); system("PAUSE"); system("cls"); //limpa a tela acima //Relatório de valores fornecidos e aparece normalmente printf("\n\n\nxxxxxxxxxx RELACAO DE VALORES FORNECIDOS xxxxxxxxxxxxxxx"); printf("\n\nValor Pago: %.2f \t\n\nQtde de Valores: %d\t\n\nSoma Calculada: %.2f\n ", valorpago, n, soma); for (i=0;i<n;i++) //Lista todos os valores do cálculo se a comparação tem sucesso { printf("\n\n %d.o Valor Fornecido: %.2f ",i+1,Med); } printf("\n\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"); break; } else if (soma<valorpago){ printf("\n==>Falta: %.2f\n",valorpago-soma); fflush(stdin); continue; system("PAUSE"); system("cls"); //limpa a tela acima //Relatório de valores fornecidos. MAS não aparece printf("\n\n\nxxxxxxxxxx RELACAO DE VALORES FORNECIDOS xxxxxxxxxxxxxxx"); printf("\n\nValor Pago: %.2f \t\n\nQtde de Valores: %d\t\n\nSoma Calculada: %.2f\n ", valorpago, n, soma); for (i=0;i<n;i++) //Lista todos os valores do cálculo se a comparação tem sucesso { printf("\n\n %d.o Valor Fornecido: %.2f ",i+1,Med); } printf("\n\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"); break; } else{ printf("\n\n==>Ultrapassou: %.2f\n",soma-valorpago); fflush(stdin); continue; system("PAUSE"); system("cls"); //limpa a tela acima //Relatório de valores fornecidos. MAS não aparece printf("\n\n\nxxxxxxxxxx RELACAO DE VALORES FORNECIDOS xxxxxxxxxxxxxxx"); printf("\n\nValor Pago: %.2f \t\n\nQtde de Valores: %d\t\n\nSoma Calculada: %.2f\n ", valorpago, n, soma); for (i=0;i<n;i++) //Lista todos os valores do cálculo { printf("\n\n %d.o Valor Fornecido: %.2f ",i+1,Med); } printf("\n\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"); break; } getch(); } } printf("\n\nFim do Programa..."); getch(); }
  11. Bem pessoal, Em meu último tópico postado consegui resolver meu problema de compilação, mas agora surgiu um outro, como liberar a memória em meus programas de cálculo. Aprendi a usar fflush(stdin); após scanf, mas mesmo assim quando meu programa se reinicia ou após um looping empregado para reiniciar resíduos do cálculo anterior voltam na efetivação do cálculo. Por exemplo: soma= soma + valor; O total desta soma utilizando este vetor volta ao reiniciar o programa e a soma se repetir. Algum amigo pode ajudar?
  12. Dei uma melhorada no programa e ficou assim: códigos aqui #include <iostream> #include <stdio.h> #include <conio.h> /* Name: Combinação de Valores de Ordem Bancária Copyright: 2010 Author: Eduardo Vieira Machado Date: 23/07/10 16:00 Description: Uso de looping para calcular e comparar valores */ int main(void) { int i,n,p=0; float Med[i]; //vetor de valores das medições //float *Med= new float[n]; char resp; float soma=0; float valorpago; system("cls"); //limpa a tela acima printf("***********************************************************************\n"); printf(" COMBINACAO DE VALORES DE ORDEM BANCARIA\n\n"); printf("***********************************************************************\n\n\n"); printf("Separe por ponto as casas decimais\n\n"); printf("\n\n\Digite o valor pago: "); scanf("%f",&valorpago); fflush(stdin); printf("\n\nDigite o numero de medicoes a somar: "); scanf("%d",&n); fflush(stdin); for (i = 0;i<n;i++) //gera um looping para inserir valores em sequência { printf("\nDigite o %2do. valor: ",i+1 ); scanf("%f",&Med[i]);//scanf("%f",&Med); fflush(stdin); soma = soma + Med[i]; //soma a cada looping os valores que são inseridos printf("\nTotal: %.2f\n",soma); fflush(stdin); { if (soma==valorpago){ printf("\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n\n"); printf("VALOR ENCONTRADO. BATE COM VALOR PAGO. BAIXE OS DEBITOS !!!\n\n"); printf("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n\n"); system("PAUSE"); system("cls"); //limpa a tela acima printf("\n\n\nxxxxxxxxxx RELACAO DE VALORES FORNECIDOS xxxxxxxxxxxxxxx"); printf("\n\nValor Pago: %.2f \t\n\nQtde de Valores: %d\t\n\nSoma Calculada: %.2f\n ", valorpago, n, soma); for (i=0;i<n;i++) //Lista todos os valores do cálculo se a comparação tem sucesso { printf("\n\n %d.o Valor Fornecido: %.2f ",i+1,Med[i]); } printf("\n\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"); break; } else if (soma<valorpago){ printf("\n==>Falta: %.2f\n",valorpago-soma); continue; } else{ printf("\n\n==>Ultrapassou: %.2f\n",soma-valorpago); continue; } getch(); } } printf("\n\nFim do Programa..."); getch(); } OK Pessoal, o programa está funcionando perfeitamente !!!
  13. Boa observação Jonathan , Misturei as bolas aqui porque também programo em Java e VB.Net que utilizam esta diretiva de inclusão de bibliotecas. Obrigado também Ronaldo. Mas NÃO está ainda imprimindo a mensagem somente quando a condição é satisfeita ou imprime a mensagem mesmo não satisfeita a condição ao final das iterações. Mas melhorou um pouco, pois na primeira compilação estava imprimindo a mensagem a cada iteração. #include <stdio.h> #include <conio.h> int main() { int i,n; //float Med[i]; float *Med= new float[n]; float soma=0; float valorpago; printf("Digite o valor pago: "); scanf("%f",&valorpago); printf("Digite o numero de medicoes a somar: "); scanf("%d",&n); for (i = 1;i<=n;i++) { printf("Digite um valor: "); scanf("%f",&Med[i]); fflush(stdin); soma = soma + Med[i]; printf("Total: %.2f\n\n",soma); } if (soma = valorpago) { printf("VALOR ENCONTRADO. FAVOR BAIXAR DEBITO"); } printf("\n"); getch(); }
  14. Oi pessoal, tenho andado um pouco afastado do estudo de C/C++. Surgiu um probleminha em meu serviço e eu sugeri a um colega que poderia fazer um programinha em C para resolver o problema. Só que não consigo detectar rapidinho um probleminha de compilação em meu código abaixo. Alguém pode ajudar? #import <stdio.h> #import <conio.h> int main() { int i,n; float Med[i]; float soma=0; float valorpago; printf("Digite o valor pago: "); scanf("%f",&valorpago); printf("Digite o numero de medicoes a somar: "); scanf("%d",&n); for (i = 1;i<n;i++) { printf("Digite um valor: "); scanf("%f",&Med[i]); fflush(stdin); soma = soma + Med[i]; printf("Total: %.2f\n\n",soma); } if (soma = valorpago) { printf("VALOR ENCONTRADO. FAVOR BAIXAR DEBITO"); } printf("\n"); getch(); }
  15. good guy

    Cor de fundo

    Bom dia amigos, Quero agradecer ao Dr. Mahala, Kassi e quitZaummm que contribuíram com as informações sobre como alterar a cor de fundo no ambiente Dev/C++. Pareceu-me mais prático utilizar a biblioteca conio atualizada baixada do link fornecido pelo Dr. Mahala, sem desmerecer o esforço dos demais amigos. Só aconteceu um pequeno inconveniente Dr. Mahala, a alteração da cor só envolve o ambiente até o início da primeira participação do usuário ao imprimir dados na tela e não em todo o ambiente visualizado pelo usuário. O que pode ser corrigido aqui? Os outros códigos fornecidos não funcionaram a contento. Muito obrigado a todos !!!
  16. Bom dia Micheus, Meus problemas: (1)A linha de código corrigido que você enviou aponta para alguns erros. Dentre eles, a não declaração de str1, conflito de tipos para char str... Naquele caso que tipo de declaração é a mais apropriada?str1 é um vetor ou um ponteiro? :huh: (2)No antigo código, eu inseri a função "fflush(stdin)" para armazenar os bytes da mensagem do vetor str[30] na memória e resolver o problema anterior, mas surgiu outro problema: o programa compila e eu posso digitar o texto, só que o programa não termina dentro da quantidade de caracteres permitida pelo vetor "str". Parece que é permitido digitar interminavelmente o texto. Mesmo alterando o código da seguinte maneira: printf("Entre com o texto a ser codificado:\n"); for (i=0; i<30; i++) { scanf("%c",&texto); fflush(stdin); if ((texto == '.')&&(i==30)) Dá pra ajudar? :rolleyes:
  17. Bom dia Micheus, Obrigado pela ajuda. Mas, o programa corrigido compila e dá erro quando você acaba de digitar um texto, do tipo "Este programa executou uma ação ilegal". Estou ciente de que o programa codifica, mas não necessariamente decodifica. Como não sei qual seria a formula correta para reverter a codificação, tive a idéia de desenvolver um programa que fizesse uma brincadeira para o usuário e também praticar o pouco que sei da linguagem C. Você saberia qual a fórmula correta de decodificação ou levar-me a pesquisar na fonte certa? E quanto ao código corrigido, saberia apontar onde está o problema? Muito obrigado !!!
  18. no código que você postou não aparece a declaração de str1, qual seria? Ah! O ideal é que você poste a mensagem de erro que ocorre (original), assim é mais fácil de alguém auxiliá-lo. ;) Abraços Boa tarde Micheus, Obrigado pela resposta. Realmente eu esqueci de declarar a variável str1. O código compila normalmente, mas não decodifica a mensagem. Dá pra solucionar? #include <stdio.h> #include <stdlib.h> #include <ctype.h> #include <string.h> #include <conio.h> int main(int args, char * arg[]) { int i,j,n; char optei; char texto[30]; char *str, *str1; str="texto[i]"; do { system("CLS"); printf("Entre com o texto a ser codificado:\n"); for (i=0; i<30; i++) { scanf("%c",&texto[i]); char *strncpy(char *str1,char *str); if (texto[i] == '.') break; } n = i; printf("Texto com %d caracteres.\n", n); for (i = 0; i<n; i++) texto[i] = (5*texto[i] + 100) % 256; printf("Texto codificado:\n"); for (i=0;i<n;i++) printf("%c",texto[i]); printf("\n"); printf("Texto decodificado:\n"); printf("%c",str1); printf("\n\n"); printf("Continua? (S/N): "); optei = toupper(getche()); } while (optei == 'S'); printf("\n"); system("PAUSE"); return 0; }
  19. Bom dia Pessoal, Gostaria de saber se alguém poderia identificar qual o erro no seguinte código: // Programa p14.c #include <stdio.h> #include <stdlib.h> #include <ctype.h> #include <string.h> #include <conio.h> int main(int args, char * arg[]) { int i,j,n; char optei; char texto[100]; char *str; str="texto[i]"; do { system("CLS"); printf("Entre com o texto a ser codificado:\n"); for (i=0; i<100; i++) { scanf("%c",&texto[i]); if (texto[i] == '.') break; char *strncpy(char *str1,char *str); } n = i; printf("Texto com %d caracteres.\n", n); for (i = 0; i<n; i++) texto[i] = (5*texto[i] + 100) % 256; printf("Texto codificado:\n"); for (i=0;i<n;i++) printf("%c",texto[i]); printf("\n"); printf("Texto decodificado:\n"); printf("%c",str1); printf("\n\n"); printf("Continua? (S/N): "); optei = toupper(getche()); } while (optei == 'S'); printf("\n"); system("PAUSE"); return 0; } Modifiquei a estrutura básica que só codificava e usei a seguinte lógica: acrescentei o ponteiro "*str" que grava a mensagem inicial para depois reapresentá-la no final. Não sei se utilizei a lógica certa. Ao compilar surge um erro na linha "printf("%c",str1);" . Alguém saberia solucionar o problema? Minha lógica estaria errada?
×
×
  • Criar Novo...