Estou desenvolvendo um programa basico em C, porém me deparei com uma situação desesperadora, o programa não tem erro de acordo com o compilador, porém não exibe o resultado esperado, estou desesperado e preciso URGENTE de ajuda qualquer palpite já ajuda, abaixo segue o código:
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
int main()
{
char data1[9], ano1[5], mes1[3], dia1[3];
char data2[9], ano2[5], mes2[3], dia2[3];
float TempDia=0,TempMes=0,TempAno=0,TempFinal=0;
printf("\t\t\n\nEste programa calcula o numero de dias entre duas datas ");
printf("\t\t\n\nDigite a primeira data no formato dd/mm/aaaa: ");
scanf("%s", data1);
ano1[0] = '';
strncat(ano1, data1+6, 4);
ano1[4] = '';
mes1[0] = '';
strncat(mes1, data1+3, 2);
mes1[2] = '';
dia1[0] = '';
strncat(dia1, data1, 2);
dia1[2] = '';
printf("\t\t\n\nDigite a segunda data no formato dd/mm/aaaa: ");
scanf("%s", data2);
ano2[0] = '';
strncat(ano2, data2+6, 4);
ano2[4] = '';
mes2[0] = '';
strncat(mes2, data2+3, 2);
mes2[2] = '';
dia2[0] = '';
strncat(dia2, data2, 2);
dia2[2] = '';
TempDia = ((atof(dia1))-(atof(dia2)));
TempMes = (((atof(mes1))-(atof(mes2))) * 30.5);
TempAno = (((atof(ano1))-(atof(ano2))) * 365.25);
TempFinal = TempDia + TempMes + TempAno;
if (TempFinal < 0)
{
TempFinal = (TempFinal * (-1));
}
A PARTIR DAQUI ESTA O PROBLEMA
AQUI GOSTARIA DE EXIBIR OS DIAS, MES, E ANOS DIGITADOS, MAS NÃO SEI CONVERTER
Pergunta
Guest Malvew
Olá.
Estou desenvolvendo um programa basico em C, porém me deparei com uma situação desesperadora, o programa não tem erro de acordo com o compilador, porém não exibe o resultado esperado, estou desesperado e preciso URGENTE de ajuda qualquer palpite já ajuda, abaixo segue o código:
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
int main()
{
char data1[9], ano1[5], mes1[3], dia1[3];
char data2[9], ano2[5], mes2[3], dia2[3];
float TempDia=0,TempMes=0,TempAno=0,TempFinal=0;
printf("\t\t\n\nEste programa calcula o numero de dias entre duas datas ");
printf("\t\t\n\nDigite a primeira data no formato dd/mm/aaaa: ");
scanf("%s", data1);
ano1[0] = '';
strncat(ano1, data1+6, 4);
ano1[4] = '';
mes1[0] = '';
strncat(mes1, data1+3, 2);
mes1[2] = '';
dia1[0] = '';
strncat(dia1, data1, 2);
dia1[2] = '';
printf("\t\t\n\nDigite a segunda data no formato dd/mm/aaaa: ");
scanf("%s", data2);
ano2[0] = '';
strncat(ano2, data2+6, 4);
ano2[4] = '';
mes2[0] = '';
strncat(mes2, data2+3, 2);
mes2[2] = '';
dia2[0] = '';
strncat(dia2, data2, 2);
dia2[2] = '';
TempDia = ((atof(dia1))-(atof(dia2)));
TempMes = (((atof(mes1))-(atof(mes2))) * 30.5);
TempAno = (((atof(ano1))-(atof(ano2))) * 365.25);
TempFinal = TempDia + TempMes + TempAno;
if (TempFinal < 0)
{
TempFinal = (TempFinal * (-1));
}
A PARTIR DAQUI ESTA O PROBLEMA
AQUI GOSTARIA DE EXIBIR OS DIAS, MES, E ANOS DIGITADOS, MAS NÃO SEI CONVERTER
printf("\nDia: %s %s",dia1,dia2);
printf("\nMes: %s %s",mes1,mes2);
printf("\nAno: %s %s",ano1,ano2);
ESTE É O RESULTADO FINAL
printf("\n%1.0f", TempFinal);
}
Link para o comentário
Compartilhar em outros sites
14 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.