#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.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts