#define [RESOLVIDO]

1. #define [RESOLVIDO]

INFER
nkio

(usa Ubuntu)

Enviado em 11/08/2013 - 09:53h

#include <stdio.h>
#define RESPONSE_SIZE 40
#define FREQUENCY_SIZE 11

int main(void)
{
int answer; /* contador para percorrer 40 repostas */
int rating; /* contador para percorrer frequências 1-10 */

int frequency[FREQUENCY_SIZE] = {0};

int responses[RESPONSE_SIZE] = {1, 2, 6, 4, 8, 5, 9, 7, 8, 10, 1, 6, 3, 8, 6, 10, 3, 8, 2, 7, 6, 5, 7, 6, 8, 6, 7, 5, 6, 6, 5, 6, 7, 5 , 6, 4, 8, 6, 8, 10};

for (answer = 0; answer < RESPONSE_SIZE; answer++) {
++frequency[responses[answer]];
}

printf("%s%17s\n", "Avaliacao", "Frequencia");

for (rating = 1; rating < FREQUENCY_SIZE; rating++) {
printf("%6d%17d\n", rating, frequency[rating]);
}

return 0;
}


Como já disse, eu não sei fazer aquele efeito para códigos, então eu postei direto. Não consegui entender quase nada desse código. É um código que eu peguei no livro.

Essas são as partes que eu tenho mais dificuldade:

++frequency[responses[answer]];
___________________________________

printf("%6d%17d\n", rating, frequency[rating]);


NÃO CONSEGUI ENTENDER QUASE NADA! Se alguém puder explicar o código, eu agradeço muito!


  


2. Re: #define [RESOLVIDO]

Luis R. C. Silva
luisrcs

(usa Linux Mint)

Enviado em 11/08/2013 - 11:03h

++frequency[responses[answer]];

Está somando 1 a cada elemento do vetor frequency[responses[answer]]
responses[answer] é o índice do elemento.


printf("%6d%17d\n", rating, frequency[rating]);

Como eu havia escrito antes, %6d diz para escrever na tela com 6 espaços em branco a esquerda e %17d, escreve com 17 espaços em branco.

Recomendo iniciar com códigos simples para entender melhor sobre o laço for(), sobre vetores e matrizes e função printf().


3. Re: #define [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 11/08/2013 - 11:41h

nkio,

Vá por partes. Faça perguntas mais objetivas. Postar um programa e dizer que não entendeu quase nada não ajuda a responder a você, nem o ajuda a aproveitar bem as respostas que lhe forem dadas. Separe os pedaços mais confusos e pergunte primeiro sobre eles, pois é provável que se você os entender, vai conseguir deduzir informações sobre o restante.

Ajude os outros a ajudar você. Comece pondo um título no tópico que tenha a ver com as perguntas objetivas que você vai fazer (neste, por exemplo, o título é "#define", mas você não fez nenhuma pergunta que se relacionasse ao título).


4. Re: #define [RESOLVIDO]

INFER
nkio

(usa Ubuntu)

Enviado em 11/08/2013 - 12:33h

RSRSRS... Quando eu posto, pedem pra mim colocar o código todo que é melhor, mas agora, dizem pra mim colocar só parte do código! RSRSRS Sei lá! O título, foi cagada mesmo, mas o resto eu postei justamente pra isso! PARA PODER AJUDAR!

Se eu postasse só um pedaço de código, poderia ser de qualquer programa, mas se eu posto o código todo, na minha opinião faz é ajudar mais a quem vai responder.

Mas mesmo assim, brigado pelas dicas....

A resposta do rei_astro já resolveram os meus problemas, brigado!


5. Re: #define [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 11/08/2013 - 13:08h

Ninguém disse para você não postar o código todo, mas sim para você ser mais específico nas suas perguntas.

Veja este caso: você disse que não havia entendido quase nada, mas depois de ter recebido a explicação de uma única linha, disse que já tinha o problema resolvido. Então o "quase nada" de antes era o que? Exagero? Mentira?

O pessoal aqui gosta de ajudar -- eu inclusive. No tópico que você postou sobre números aleatórios, por exemplo, eu fui o único que deu a explicação correta -- que inclusive corrigia a informação errada que você tinha recebido do material explicatório que está usando. Mas é sempre melhor dialogar com alguém que mostra respeito pela gente, principalmente quando se gasta tempo para ajudar.