Ir ao conteúdo

Programa em C


Ruka284

Posts recomendados

Postado

Elabore um programa em c que dada uma sequencia de números inteiros terminada por 5, calcule a percentagem correspondente aos valores superiores a 8.

O que acham deste programa ?

O que devia de melhorar?

Que erros detectaram ?


#include<stdio.h>
#include<stdlib.h>

int main ()

{

float contTotal=0, contMaior8=0, percentagem,numero=0;

printf ("\n introduza o numero \n");
scanf("%f",&numero);

while(numero!=5)
{
contTotal++;
if (numero > 8)
contMaior8++;
printf ("\n introduza o numero \n");
scanf("%f",&numero);
}


if (contTotal != 0)
{
printf("percentagem numeros > 8 e %.2f", (contMaior8/contTotal)*100 );
}
else
{
printf("Não foram introduzidos números válidos");
}

getchar();
}

Postado

Olá Ruka, o seu código do jeito que está não vai funcionar corretamente, porque voce está incrementando os contadores antes de pegar o valor de "numero".

Não compreendi muito o enunciado mas para funcionar de acordo com a lógica do seu algoritmo, eu só mudei a parte do while.

#include<stdio.h>

#include<stdlib.h>

int main ()

{

float contTotal=0, contMaior8=0, percentagem,numero=0;

printf ("\n introduza o numero \n");

scanf("%f",&numero);

while(numero!=5)

{

printf ("\n introduza o numero \n");

scanf("%f",&numero);

contTotal++;

if (numero > 8)

contMaior8++;

}

if (contTotal != 0)

{

printf("percentagem numeros > 8 e %.2f", (contMaior8/contTotal)*100 );

}

else

{

printf("Não foram introduzidos números válidos");

}

getchar();

system("pause");

}

Veja que o numero "5" não será contabilizado na operação da porcentagem de números maiores que "8", pois ele é condição de parada.

Postado

Você poderia resolver dessa forma, mas simplificada aproveitando o valor do contador no cálculo.


#include <stdio.h>

int main(void){
int i;
float soma, numero;

for(i = 0, soma = 0; i < 5; i++){
printf("Entre com um numero #%d ", (i + 1));

scanf(" %f", &numero);

if(numero > 8)
soma++;
}

printf("Percentagem de numeros > 8: %.2f%\n", (soma / i) * 100);

return 0;
}

  • 2 meses depois...
Postado

Coloque o break dentro de um if pra quando for digitado 5 sair do laço



#include<stdio.h>
#include<stdlib.h>

int main ()
{

float contTotal=0, contMaior8=0, percentagem,numero=0;

printf ("\n introduza o numero \n");
scanf("%f",&numero);

while(numero!=5)
{
printf ("\n introduza o numero \n");
scanf("%f",&numero);

if(numero!5){
break;//para o laço
}
contTotal++;
if (numero > 8)
contMaior8++;
}



if (contTotal != 0)
{
printf("percentagem numeros > 8 e %.2f", (contMaior8/contTotal)*100 );
}
else
{
printf("Não foram introduzidos números válidos");
}

getchar();
system("pause");
}

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!