Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Tilipus

Não sei como fazer , exercício em C

Recommended Posts

3. Ler uma data no formato ddmmaaaa e escrever o dia, mês e ano da data. Entrada: um número inteiro, na variável data, com 8 dígitos, no formato ddmmaaaa, onde dd é o dia com duas casas (Ex: 02, 23), mm é o mês, também com duas casas (Ex: 12, 01) e aaaa é o ano com 4 casas (Ex: 1947, 2016).

Processamento: separar os dígitos da data e atribuir às respectivas variáveis

Saída: escrever uma linha para cada informação, no formato

Dia = 12

Mês = 01 Ano = 1994 Exemplo: Entrada:

21032014 Saída:

Dia = 21 Mês = 03 Ano = 2014

4. Ler uma data no formato ddmmaaaa e verificar se a data digitada é válida. Entrada: um número inteiro, na variável data, com 8 dígitos, no formato ddmmaaaa, onde dd é o dia com duas casas (Ex: 02, 23), mm é o mês, também com duas casas (Ex: 12, 01) e aaaa é o ano com 4 casas (Ex: 1947, 2016). Processamento: verificar se a data é válida. Verificar se o número de dias é compatível com o mês, verificar se o mês está correto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara me parece ser simples, basta você ler os dados em uma variável auxiliar, como uma strign depois use uma função para quebrá-la,

 

aki ensina

 

http://www.arquivodecodigos.net/dicas/c-como-usar-a-funcao-strtok-para-quebrar-uma-string-c-usando-delimitadores-3189.html

 

coloca suas partes em variaveis, como solicitado dia mes e ano,

 

para validar as informaçoes digitadas e facil mete um if e else com as condiçoes.

 

Espero ter ajudado.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Espero ter ajudado!
Usa-se para obter o dia: obterData(mmddaaaa,1);

" " o mes: obterData(mmddaaaa, 2);

" " o ano: obterData(mmddaaaa,3);

 

Exemplo:

int dia = obterData("11071997",1);
printf("dia = %d",dia);
output:
dia = 11
int obterData(const char *data, int tipo){
     char buffer[6];
     buffer[0] = '\0';
     int result = 0;


     //Recebemos um tipo, que pode ser dia, mes ou ano.
     //Cada tipo vamos armazenar de um tipo no buffer
     switch(tipo){
        //Obter Dia dd <---
        //Localizado apos o 1 caracter de ddmmaaaa
        case 1:
        buffer[0] = data[0];
        buffer[1] = data[1];
        buffer[2] = '\0';
        break;


        //Obter Mes mm <---
        //Localizado apos o 3 caracter de ddmmaaaa
        case 2:
        buffer[0] = data[2];
        buffer[1] = data[3];
        buffer[2] = '\0';
        break;


        //Obter Ano aaaa <---
        //Localizado apos o 4 caracter de ddmmaaaa
        case 3:
        buffer[0] = data[4];
        buffer[1] = data[5];
        buffer[2] = data[6];
        buffer[3] = data[7];
        buffer[4] = '\0';
        break;


        default:
        break;
     }


    //Transformamos o resultado string em inteiro
    result = atoi(buffer);
    //Como nao vamos mais usar o buffer
    //Liberamos memoria
    delete buffer;
    return result;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

eis como separar! estude o código e com base nele você consegue fazer o resto! :D

#include <stdio.h>
int main(){
    int data;
    scanf("%d", &data);
    int dia,mes,ano;
    dia = (int)(data/1000000);
    mes = (int)((data - dia*1000000)/10000);
    ano = data - ((dia * 1000000) + (mes*10000));
    printf("%d / %d / %d",dia, mes, ano);
    return 0;
}

obs: usando apenas cálculos e como entrada um número inteiro!

qualquer dúvida pode me perguntar! :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.