jorge618 Posted December 30, 2016 at 02:51 AM Report Share #601578 Posted December 30, 2016 at 02:51 AM void MesMaisNascimetos(bd *bdv) { bdmes BD; BD.vmeses = (numpessoas *)malloc(MAXPESSOAS * sizeof(numpessoas)); int Mes[12]; Mes[0] = 1; Mes[1] = 2; Mes[2] = 3; Mes[3] = 4; Mes[4] = 5; Mes[5] = 6; Mes[6] = 7; Mes[7] = 8; Mes[8] = 9; Mes[9] = 10; Mes[10] = 11; Mes[11] = 12; int i, j; char mes[2]; char m1, m2; int m; for (i = 0; i < bdv->npessoas; i++) { m1 = bdv->vp[i].datanasc[3]; m2 = bdv->vp[i].datanasc[4]; mes[0] = m1; mes[1] = m2; m = atoi(mes); printf("\n%d\n", m); for (j = 0; j < BD.nmeses; j++) { if (m == Mes[j]) BD.vmeses[j].numpessoas += 1; } } int maiormes; int maior = BD.vmeses[i].numpessoas; for (i = 1; i < BD.nmeses; i++) { if (BD.vmeses[i].numpessoas > maior) { maior = BD.vmeses[i].numpessoas; maiormes = i; } } printf("\nO mes com mais nascimentos foi o mes %d\n", maiormes); } #include "struct_cidadao.h" typedef struct { pessoa *vp; int npessoas; }bd; #define MAX_NOME 200 typedef struct { int codigo; char nome[MAX_NOME]; char localidade[MAX_NOME]; char datanasc[11]; int idade; }pessoa; typedef struct { int Npessoas; }NPessoas; typedef struct { int numpessoas; }numpessoas; typedef struct { numpessoas *vmeses; int nmeses; }bdmes; int nmeses = 12; Não sei o que fiz de mal, mas não consigo executar essa função, aparece um erro. Alguém me consegue ajudar ? Desde já obrigado. Cumps jorge618 Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted December 30, 2016 at 09:55 AM Report Share #601583 Posted December 30, 2016 at 09:55 AM qual o valor de BD.nmeses ? (e resposta deverá mencionar a linha de código que valida a resposta dada) IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
jorge618 Posted December 30, 2016 at 03:01 PM Author Report Share #601601 Posted December 30, 2016 at 03:01 PM typedef struct { numpessoas *vmeses; int nmeses; }bdmes; int nmeses = 12; mas ao por assim typedef struct { numpessoas *vmeses; int nmeses=12; }bdmes; dá erro de sintax (não estava a dar inserir imagens por link, por isso colei aqui o link) https://gyazo.com/36641d0a4716f3b2be8102bef025075c mesmo com o ; continua a dar erro Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted December 30, 2016 at 05:41 PM Report Share #601605 Posted December 30, 2016 at 05:41 PM reparaste que em nenhuma das linhas que colocaste, aparece a variável que te perguntei ? onde estás instanciada a variável que perguntei ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
jorge618 Posted December 30, 2016 at 05:46 PM Author Report Share #601607 Posted December 30, 2016 at 05:46 PM Não está. Como eu faço para inicializa-la ? Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted December 30, 2016 at 05:49 PM Report Share #601608 Posted December 30, 2016 at 05:49 PM olha para o teu código. onde estás a instanciar a variável BD ? 1 Report IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
jorge618 Posted December 30, 2016 at 05:52 PM Author Report Share #601609 Posted December 30, 2016 at 05:52 PM Aqui bdmes BD; Certo ? Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted December 30, 2016 at 05:54 PM Report Share #601610 Posted December 30, 2016 at 05:54 PM sim agora, olha : estás a inicializar o parâmetro vmeses, mas o nmeses nem lhe tocas IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
jorge618 Posted December 30, 2016 at 05:56 PM Author Report Share #601611 Posted December 30, 2016 at 05:56 PM Tenho então que alocar memoria para o nmeses ? Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted December 30, 2016 at 08:24 PM Report Share #601612 Posted December 30, 2016 at 08:24 PM não ... basta inicializar IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
jorge618 Posted December 30, 2016 at 08:50 PM Author Report Share #601613 Posted December 30, 2016 at 08:50 PM Ok muito obrigado Link to comment Share on other sites More sharing options...
Xendro Posted December 31, 2016 at 12:08 AM Report Share #601615 Posted December 31, 2016 at 12:08 AM tens de inicializar antes de usar no ciclo for BD.nmeses = 12; for (j = 0; j < BD.nmeses; j++) ou : como a variavel nao tem utilidade substituir o valor no ciclo por uma constante for (j = 0; j < 12; j++) Link to comment Share on other sites More sharing options...
jorge618 Posted December 31, 2016 at 12:11 AM Author Report Share #601617 Posted December 31, 2016 at 12:11 AM 1 minuto atrás, Xendro disse: tens de inicializar antes de usar no ciclo for BD.nmeses = 12; for (j = 0; j < BD.nmeses; j++) ou : como a variavel nao tem utilidade substituir o valor no ciclo por uma constante for (j = 0; j < 12; j++) sim xendro, já fiz isso, obrigado, foi o que o HappyHippyHippo me disse indiretamente. Mais uma vez obrigado! Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted December 31, 2016 at 12:12 AM Report Share #601618 Posted December 31, 2016 at 12:12 AM Just now, jorge618 said: sim xendro, já fiz isso, obrigado, foi o que o HappyHippyHippo me disse indiretamente. Mais uma vez obrigado! dizer-lo indirectamente tem um objectivo muito simples : fazer-te pensar. é assim que se aprender IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
jorge618 Posted December 31, 2016 at 12:13 AM Author Report Share #601619 Posted December 31, 2016 at 12:13 AM 1 minuto atrás, HappyHippyHippo disse: dizer-lo indirectamente tem um objectivo muito simples : fazer-te pensar. é assim que se aprender E eu agradeço-lhe por isso Link to comment Share on other sites More sharing options...
Xendro Posted December 31, 2016 at 12:18 AM Report Share #601620 Posted December 31, 2016 at 12:18 AM (edited) 6 minutos atrás, HappyHippyHippo disse: dizer-lo indirectamente tem um objectivo muito simples : fazer-te pensar. é assim que se aprender e Verdade mas a esta hora ja estou cansado e so quis dar uma ajuda rapida. e tambem para matar saudades dos meus tempos de programacao em C. Este e o erro mais comum do C . Usar variaveis que não estao inicializadas! Boa continuação Edited December 31, 2016 at 12:18 AM by Xendro Link to comment Share on other sites More sharing options...
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