1Skull 0 Posted February 26, 2011 Report Share Posted February 26, 2011 Bom dia, estou a fazer um projecto do final de modulo , 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á Link to post Share on other sites
amando96 0 Posted February 26, 2011 Report Share Posted February 26, 2011 > 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
Localhost 3 Posted February 26, 2011 Report Share Posted February 26, 2011 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
1Skull 0 Posted February 26, 2011 Author Report Share Posted February 26, 2011 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
Localhost 3 Posted February 26, 2011 Report Share Posted February 26, 2011 Passei agora por momentos difíceis para pôr o código a funcionar lol. Já tens a função corrigida e testada no post anterior. here since 2009 Link to post Share on other sites
1Skull 0 Posted February 26, 2011 Author Report Share Posted February 26, 2011 Funcionou a 100% Brigado Link to post Share on other sites
Baderous 31 Posted February 26, 2011 Report Share Posted February 26, 2011 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
Localhost 3 Posted February 26, 2011 Report Share Posted February 26, 2011 Realmente fui um bocado redundante. Se utilizei a função strlen e ela retornou tudo correctamente é porque já existia lá o \0. here since 2009 Link to post Share on other sites
Baderous 31 Posted February 26, 2011 Report Share Posted February 26, 2011 Exacto. Link to post Share on other sites
Cronometro 0 Posted March 1, 2011 Report Share Posted March 1, 2011 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
Baderous 31 Posted March 1, 2011 Report Share Posted March 1, 2011 É isso. Link to post Share on other sites
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now