Ir para conteúdo
Fórum Script Brasil
  • 0

Questao de estrutura (struct)


Sleipbr

Pergunta

E o seguinte, a questao e essa!

Escreva uma estrutura para descrever um mes do ano. A estrutura deve ser capaz de

armazenar o nome do mes, a abreviação em letras, o numero de dias e o numero do mes.

defina uma matriz de 12 estruturas descritas na questão anterior e inicialize-a

com todos os dados de um ano não bissexto.

#include <stdio.h>

typedef struct Mes{
char nome[20];
char abr[2];
int dias;
int numero;
}dados;

main() {
   dados n, a, d, num;
   printf("Informe o nome do mes: ");
   gets(n.nome);
   printf("Informe a abreviacao do mes: ");
   gets(a.abr);
   printf("Informe a quantidade de dias do mes: ");
   scanf("%d", &d.dias);
   printf("Informe o mes em algarismo: ");
   scanf("%d", &num.numero);
   
   printf("%s\n", n.nome);
   printf("%s\n", a.abr);
   printf("%d\n", d.dias);
   printf("%d\n", num.numero);
   
   getch();
}

meu codigo primeira questao, agora essa segunda eu não sei alguém pode me ajudar?

Editado por Sleipbr
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Bem não faz sentido você colocar typedef struct Mes{} dados;

Coloca tipo typedef struct{} Mes;

Apesar que do jeito que você colocou não vai dá erro, mas se você for declarar uma variável

do tipo Mes ai vai dar erro. Por exemplo: Mes n;

Se você está informando o nome, abreviação, quantidade de dias e o mês em algarismo do mesmo

mês pra q você declarou várias váriaveis da mesma estrutura?

Vou responder a questão da matriz (alocação estática) de uma vez:

typedef struct{
char nome[20];
char abr[2];
int dias;
int numero;
} dados;

main(){

/*Coloquei 1 pra considerar apenas uma linha na matriz, ou seja um ano;
e o 12 para considerar doze meses*/

dados n[1][12]; 
int i = 0;

//Para poder iterar na matriz de uma linha vou colocar um while;

  while( i < 12 ){

   printf("Informe o nome do mes: ");
   gets(n[0][i].nome);

   printf("Informe a abreviacao do mes: ");
   gets(n[0][i].abr);

   printf("Informe a quantidade de dias do mes: ");
   scanf("%d", &n[0][i].dias);

   printf("Informe o mes em algarismo: ");
   scanf("%d", &n[0][i].numero);

   printf("%s\n", n[0][i].nome);
   printf("%s\n", n[0][i].abr);
   printf("%d\n", n[0][i].dias);
   printf("%d\n", n[0][i].numero);

   i++;

   getch();
  }
}

Se você quiser aumentar o número de linhas da matriz vai ter q colocar mais while ou for do jeito que você preferir, pra poder iterar com as estruturas definidas para as outras linhas, ai você terá que criar uma outra variável pra poder ficar iterando no primeiro operador de indexação, de desreferência (dá tudo na mesma esses nomes hehe).

Mas você ficar com apenas uma linha na matriz é melhor apagar [1] e deixar somente [12] que ai vai ficar um vetor.

Espero ter ajudado!

Abraço

Editado por jSlin
Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...