good guy
-
Total de itens
19 -
Registro em
-
Última visita
Posts postados por good guy
-
-
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?
-
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"); } }
-
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);
}
-
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);
-
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.
-
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; }
-
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.*/
-
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.
-
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();
}
-
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?
-
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 !!!
-
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(); }
-
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(); }
-
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 !!!
-
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:
-
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 !!!
-
no código que você postou não aparece a declaração de str1, qual seria?Ao compilar surge um erro na linha "printf("%c",str1);" . Alguém saberia solucionar o problema?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; }
-
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?
programa que caucula o ano em dias meses
em C, C++
Postado · Editado por good guy
Olá Luis,
Em um outro post já respondi com um código semelhante ao que você quer. Mas vou repetir aqui:
Falta acrescentar o método que calcula em semanas, mas isso não é difícil. você pode resolver ...