jett Posted April 3, 2013 at 08:59 PM Report #501494 Posted April 3, 2013 at 08:59 PM (edited) Olá, estou armazenando uma estrutura em um vetor em modo crescente, mas estou tendo alguns erros. Como na hora de checar o vetor está vazio. O que devo fazer? #include <stdio.h> #include <stdlib.h> typedef struct cor{ int quantidade; char nomecor[20]; char letra [26]; }cor; cor *preenche(cor *nova){ int cont; printf("Qua o nome da cor: "); fflush(stdin); fgets(nova->nomecor, 20, stdin); printf("Quantidade de bolas desta cor: "); scanf("%d", &(nova->quantidade)); for(cont=0; cont<nova->quantidade; cont++){ printf("Digite uma letra"); scanf("%c", &nova->letra[cont]); } return nova; } cor *inserir(cor *C, int k, int n){ int cont, aux=n; while(aux>0){ cor *nova = (cor*)malloc(sizeof(cor)); nova = preenche(nova); if(C == NULL){ C[0] = nova; }else{ for(cont = 0; cont<k; cont++){ if(C[cont]->quantidade < nova->quantidade){ C[continue+1] = C[cont]; C[cont] = nova; } } } aux = aux - (nova->quantidade); } return C; } int main(){ int n, k; printf("Digite o numero de bolinhas que o jogo tera: "); scanf("%d", &n); printf("Quantas cores diferentes o seu jogo tera: "); scanf("%d", &k); cor C[k]; C=inserir(C, k, n); return 0; } Edited April 3, 2013 at 09:02 PM by pmg Falta LP no GeSHi
pmg Posted April 3, 2013 at 09:07 PM Report #501496 Posted April 3, 2013 at 09:07 PM Antes de mais nada, aumenta os warnings do teu compilador e nao te des por satisfeito com compilacoes que produzem avisos. Resolve todos os warnings antes sequer de correr o programa. What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!
jett Posted April 3, 2013 at 11:38 PM Author Report #501511 Posted April 3, 2013 at 11:38 PM Eu tentei diminuir os warnings, mas sinceramente não consegui consertar nenhum.
jett Posted April 4, 2013 at 06:26 PM Author Report #501692 Posted April 4, 2013 at 06:26 PM (edited) Eu mudei todo o meu código, agora estou tendo problemas ao pegar as letras que cada cor de bola terá: #include <stdio.h> #include <stdlib.h> typedef struct cor { char nomecor[20]; int quantidade; char letra[26]; struct cor *prox; } cor; cor *inserir(cor *C, int n, int k) { int j = n, i = 0, cont; while(i<k && j>0) { cor *nova = (cor*)calloc(1,sizeof(cor)); printf("Digite o nome da cor: "); fflush(stdin); fgets(nova->nomecor, 20, stdin); printf("Digite a quantidade de bolas que terao esta cor: "); scanf("%d", &nova->quantidade); if(nova->quantidade > n) { printf("Ultrapassou!\n"); break; } for(cont = 0; cont<nova->quantidade; cont++) { printf("Digite uma letra: "); scanf("%c", &nova->letra[cont]); } j = j - (nova->quantidade); i++; if(C == NULL) { C = nova; nova->prox = NULL; //return C; } else { cor *anterior = NULL; cor *aux = C; if(C->prox == NULL) { nova->prox = C; C = nova; } while(aux!= NULL) { if(aux->quantidade < nova->quantidade) { anterior = aux; aux = aux->prox; } if(aux->quantidade > nova->quantidade) { anterior->prox = nova; nova->prox = aux; } } if(aux == NULL) { anterior->prox = nova; //return C; } } } return C; } int main() { int n, k; cor *C = NULL; printf("E ai carinha, quantas bolinhas serao? "); scanf("%d", &n); printf("Mas e aí, quantas cores diferentes esse teu jogo vai ter? "); scanf("%d", &k); C = inserir(C, n, k); return 0; } Edited April 4, 2013 at 06:32 PM by pmg Falta LP no GeSHi
HappyHippyHippo Posted April 4, 2013 at 06:32 PM Report #501694 Posted April 4, 2013 at 06:32 PM uma questão : que relação existe entre quantidade de bolas e quantidade de cores ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
jett Posted April 4, 2013 at 06:34 PM Author Report #501697 Posted April 4, 2013 at 06:34 PM Então, estou criando um jogo em que eu tenho 'n' numero de bolas e posso ter 'k' cores no jogo. Ou seja, posso ter um total de 6 bolas no jogo, e 3 amarelas e 3 verdes.
jett Posted April 4, 2013 at 07:32 PM Author Report #501706 Posted April 4, 2013 at 07:32 PM (edited) O meu problema está sendo na hora de ler uma letra por vez para armazenar nessa estrutura typedef struct cor { char nomecor[20]; int quantidade; char letra[26]; struct cor *prox; } cor; porque eu quero um vetor de letras e não uma string, porque pelo visto esse meu char letra[26]; está sendo tratado como string. O que devo fazer? Edited April 4, 2013 at 08:00 PM by pmg formatacao
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