Jump to content

Estrutura para os meses do ano


1Skull

Recommended Posts

Bom dia, estou a fazer um projecto do final de modulo :cheesygrin:, mas tenho um problema.

Quando nós escrevemos 1 queria que aparecesse o nome do mês, e assim sucessivamente. Gostava de saber se me poderiam ajudar  🤔.

Se der para fazer uma estrutura agradecia.  :)

Obrigado desde já :wallbash:

Link to post
Share on other sites

> Ler valor

> Switch case

switch (variavel)

case 1:

mes = "janeiro";

break;

case 2:

mes = "fevereiro";

break;

...

default:

mes = "Esse mês não existe!";

break;

Acabar o switch

printf("%s",mes);

A do array foi bem pensada  :)

FACEPALMMOVLW PALMMOVWF FACE

Link to post
Share on other sites

Podes ter um vector de strings e depois indexar a posição inserida pelo utilizador (sem esquecer que a indexação começa no 0).

char months[][30] = {"janeiro", "fevereiro", "março", "abril", "maio", "junho", "julho", "agosto", "setembro", "outubro", "novembro", "dezembro"};

scanf ("%d", &n);
printf ("%s\n", months[n - 1]);

here since 2009

Link to post
Share on other sites

Nao sei bem como explicar, eu preciso dos meses, porque preciso de datas de nascimento, mas eu tenho de usar funções e como nao domino bem gostaria que me explica-se melhor.

Desculpe a minha ignorancia

Link to post
Share on other sites

Podes ter um vector de strings e depois indexar a posição inserida pelo utilizador (sem esquecer que a indexação começa no 0).

char months[][30] = {"janeiro", "fevereiro", "março", "abril", "maio", "junho", "julho", "agosto", "setembro", "outubro", "novembro", "dezembro"};

scanf ("%d", &n);
months[n - 1][strlen (months[n - 1])] = '\0';

printf ("%s\n", months[n - 1]);

Não é preciso esse malabarismo todo, basta um array de strings, elas são inicializadas com o '\0' no fim de cada uma.

#include <stdio.h>

int main(void) {
        int n;
        char* months[] = {"janeiro", "fevereiro", "março", "abril", "maio", "junho", "julho", "agosto", "setembro", "outubro", "novembro", "dezembro"};
        scanf("%d",&n);
        printf("%s\n",months[n]);
        return 0;
}

Link to post
Share on other sites
Cronometro

Não é preciso esse malabarismo todo, basta um array de strings, elas são inicializadas com o '\0' no fim de cada uma.

#include <stdio.h>

int main(void) {
        int n;
        char* months[] = {"janeiro", "fevereiro", "março", "abril", "maio", "junho", "julho", "agosto", "setembro", "outubro", "novembro", "dezembro"};
        scanf("%d",&n);
        printf("%s\n",months[n]);
        return 0;
}

printf("%s\n",months[n]);

ou

printf("%s\n",months[n-1]);

?

Software is like sex: It’s better when it’s free.
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.