Aprendendo C [RESOLVIDO]

1. Aprendendo C [RESOLVIDO]

INFER
nkio

(usa Ubuntu)

Enviado em 09/08/2013 - 07:56h

Eu ainda estou aprendendo C, e queria pedir ajuda de alguém para poder me explicar esse código. Eu entendi um pouco, mas é que se eu fosse fazer, talvez fizesse diferente, nem pensaria nisso:

#include <stdio.h>

int main(void)
{
int contador;
int nota;
int total;

float media;

total = 0;
contador = 0;

printf("Digite a nota, -1 no fim: ");
scanf("%d", &nota);

while (nota != -1) {
total = total + nota;
contador = contador + 1;

printf("Digite a nota, -1 para finalizar: ");
scanf("%d", &nota);
}

if (contador != 0) {
media = (float) total / contador;

printf("Media da turma e %.2f\n", media);
}
else {
printf("Nenhuma nota foi informada\n");
}

return 0;
}



Tirei isso do livro do Deitel. É um programa que calcula as notas, sem saber quantas notas serão inseridas, então quando o usuário digita "-1", o programa termina e a média da turma é informada.

Eu entendi mais ou menos, mas queria que alguém com experiência pudesse me explicar.


  


2. Re: Aprendendo C [RESOLVIDO]

Marcelo Theodoro
MarceloTheodoro

(usa Debian)

Enviado em 09/08/2013 - 09:17h

Qual parte você não está entendendo bem?
Você conhece as funções while e if?


3. Re: Aprendendo C [RESOLVIDO]

Diego Langer
dlanger

(usa Debian)

Enviado em 09/08/2013 - 09:30h

Conheço apenas o básico de C, mas pelo que "entendi" do programa é isso.

#include <stdio.h>

int main(void)
{
int contador; //declaração de variavel
int nota; //declaração de variavel
int total; //declaração de variavel
float media; //declaração de variavel

total = 0; //atribuição a variavel, variavel usada nesta programa para somar o total das notas
contador = 0; //atribuição a variavel, variavel usada para contar a quantidade de notas informada

printf("Digite a nota, -1 no fim: "); //solicitação de digitação da primeira nota
scanf("%d", &nota); // armazenamento do valor informado na variavel nota

while (nota != -1) // enquanto nao for digitado -1 se repete o que esta neste laço
{
total = total + nota; //total recebe seu valor acrescido do valor digitado na variavel nota
contador = contador + 1; // contador é incrementado, para sabermos quantas notas foram digitadas
printf("Digite a nota, -1 para finalizar: "); //informar o valor da proxima nota
scanf("%d", &nota); //armazenamento do valor digitado para nota
}

if (contador != 0) // se o contador for diferente de 0
{
media = (float) total / contador; //divisao do valor somado das notas dividido pela quantidade de notas
printf("Media da turma e %.2f\n", media);// impressao do resultado
}

else // aviso que nenhuma nota foi informada
{
printf("Nenhuma nota foi informada\n");
}

return 0;
}

Se tiveres mais dúvidas, indique a linha ou comando para mais explicações.


4. Re: Aprendendo C [RESOLVIDO]

ian cléver sales fernandes
ianclever

(usa Arch Linux)

Enviado em 09/08/2013 - 10:08h

cara esse código tá meio gambiarra, vou passar uma forma mais bonita de se fazer.

#include <stdio.h>

int main(void)
{
int contador;//declarou uma variável chamada "contador" do tipo inteiro
int nota;//declarou uma variável chamada "nota" do tipo inteiro
int total;//declarou uma variável chamada "total" do tipo inteiro

float media;//Declarou uma variável chamada media do tipo real

total = 0;//"total" recebe 0
contador = 0;//"contador" recebe 0
printf("Digite a nota, -1 no fim: ");//Imprimiu algo na tela(o que ta entre aspas)
scanf("%d", &nota);//lê um valor informado pelo usuário e atribuiu a "nota"

while (nota != -1) {//verifica se "nota" é diferente de -1 e executa esse código:
total = total + nota;//"total" recebe "total" mais "nota"
contador = contador + 1;//"contador" recebe "contador" mais 1

printf("Digite a nota, -1 para finalizar: ");//Imprimiu algo na tela(o que está entre aspas)
scanf("%d", &nota);//leu um valor informado pelo usuário e atribuiu a "nota"
}

if (contador != 0) {//compara se "contador" é diferente de 0, se for:
media = (float) total / contador;//"media" recebe o "total" dividido por "contador" e converte isso para Real

printf("Media da turma e %.2f\n", media);//imprime algo na tela, e o valor de "media"
}
else {//senão :
printf("Nenhuma nota foi informada\n");//imprime algo na tela(o que está entre aspas
}

return 0;//retorna 0 pois é uma função int
}


Um codigo fazendo a mesma coisa e mais organizado:


#include <stdio.h>

void main(void)
{
int contador,nota,total;
contador=nota=total=0;
float media;

do{
total += nota;
contador++;

printf("Digite a nota, -1 para finalizar: ");
scanf("%d", &nota);
}while(nota != -1);

if (contador != 0) {
media = (float) total / contador;

printf("Media da turma e %.2f\n", media);
}
else {
printf("Nenhuma nota foi informada\n");
}

}







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts