jett Posted April 2, 2013 at 01:29 PM Report #501232 Posted April 2, 2013 at 01:29 PM (edited) Olá pessoal, Estou fazendo um programa que aloca 'n' número de bolas e pede para o usuário preencher cada bola com uma letra e uma cor. Mas o meu programa está dando erro, vocês poderiam me ajudar? #include<stdio.h> #include<stdlib.h> typedef struct bola{ char cor[10]; char letra; struct bola *prox; }bola; bola *preencher(bola *L, int n){ bola *aux=L; int cont; for(cont=0; cont<n; cont++){ printf("Digite a cor da bolinha: "); fflush(stdin); fgets(aux->cor,10,stdin); printf("Digite a letra da bolinha: "); fflush(stdin); scanf(aux->cor,1,stdin); aux=aux->prox; } return L; } void imprime(bola *L, int n){ int cont; for(cont = 0; cont<n; cont++){ L=L->prox; printf("Cor da bola: %s\n\n",L->cor); printf("Letra da bola: %c\n\n", L->letra); L=L->prox; } } int main(){ int n, cont; printf("Digite o numero de bolas: "); scanf("%d",&n); //número de bolas bola *L = (bola*)calloc(n,sizeof(bola));//aloca uma lista de n bolas L = preencher(L,n); imprime(L, n); return 0; } Edited April 2, 2013 at 02:13 PM by pmg Falta LP no GeSHi
pmg Posted April 2, 2013 at 02:26 PM Report #501259 Posted April 2, 2013 at 02:26 PM Na função preencher(): 1) remove os fflush(stdin). Não estão lá a fazer nada (acho que estavas a pensar em fflush(stdout) mas saiu-te ao contrário), além de que o seu uso não é aconselhado por fazer coisas diferentes em sistemas diferentes (ou até ser "comportamento não definido"). 2) O scanf() para a letra da bolinha está mal. O que lá está é o scanf() com aspecto de fgets(). Ou queres uma coisa ou queres outra --- o meu conselho é usares fgets() para uma variável temporário e depois meteres a letra na estrutura. Além disso estás a pedir a letra e a meter o input em aux->cor. Na função main() tens uma instrução e um comentário desfasados bola *L = (bola*)calloc(n,sizeof(bola));//aloca uma lista de n bolas Isto não aloca uma lista de n bolas, Isto aloca espaço (consecutivo) para n bolas (um array). Usando arrays (a solução mais prática, mas não deve ser o que o professor quer) não precisas do ponteiro dentro da estrutura. 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!
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