Ir ao conteúdo
  • Cadastre-se

C calculo de media em programação C


José Dutra

Posts recomendados

Olá

estou montando um código para uma atividade do meu curso porém a media que precisa aparecer no final caso seja digitado um numero negativo só aparece zero, sou iniciante em programação então não estou tendo a noção de o que pode estar errado no código, se alguém puder me dar uma orientação de o que pode ser feito para corrigir este problema ajudaria bastante.

obrigado

   

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


int main()
{

	int c, cont, i, numero = 0, conta = 0;
	float vetor[1000], media = 0, soma = 0;


	cont = 0;
	printf("Digite um numero:");
	scanf_s("%d", &numero);
	printf("\n");

	while ((cont < 1000) && (numero >= 0))
	{
		vetor[cont] = numero;

		printf("Digite um numero:");
		scanf_s("%d", &numero);
		cont++;
		printf("\n");
	}
	if (numero < 0)
	{
		soma = cont++ + numero;
		conta = soma / numero;
		media = conta - numero <= 0;

	}
	printf("\n");
	printf("A media dos numeros digitados e %d\n", &media);
	printf("\n");




	system("pause");
	return 0;
}

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@José Dutra    seu código está bom ,  só esse vetor que não está sendo usado para nada ,   e os números precisam ser somados e o contador incrementado apenas se o número digitador for positivo ,  e a média se faz depois de sair do loop , então seu código com algumas modificações poderia ser assim   :

#include<stdio.h>
#include<stdlib.h>
#include <windows.h>
/*             0     1    2     3   4      5      6      7         8  */
typedef enum{BLACK,BLUE,GREEN,CYAN,RED,MAGENTA,BROWN,LIGHTGRAY,DARKGRAY,   /* nome das cores */
LIGHTBLUE,LIGHTGREEN,LIGHTCYAN,LIGHTRED,LIGHTMAGENTA,YELLOW,WHITE} COLORS;
/*  9         10         11        12        13         14    15 */

static int __BACKGROUND = 1/*BLACK*/;/*pode ser o numero ou o nome da cor*/
static int __FOREGROUND = LIGHTGRAY;

void textcolor2 (int letras, int fundo){/*para mudar a cor de fundo mude o background*/
    __FOREGROUND = letras;
    __BACKGROUND = fundo;
    SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),
    letras + (__BACKGROUND << 4));
}
int main(){

    int c, cont=0, i,conta = 0;
    float vetor[1000], numero=0,media, soma = 0;
    textcolor2(9,15);
    system("cls");
    while ((cont < 1000) && (numero >= 0))/* condição para o loop whuile repetir */
    {
        textcolor2(9,15);
        printf("Digite um numero : ");
        textcolor2(12,15);
        scanf("%f", &numero);
        if(numero>=0){                    /* só usa o numero digitado se for positivo */
            vetor[cont] = numero;         /* aqui não está sendo usado esse vetor para nada */
            soma+=numero;
            cont++;
        }
    }
    textcolor2(9,15);
    media=soma/cont;                      /* aqui , depois de sair do loop while , calcula a madia */

    printf("\nA soma dos numeros digitados  eh %.2f    ",soma );
    printf("\nA media dos numeros digitados eh %.2f\n\n",media);
    textcolor2(2,15);
    system("pause");
    textcolor2(0,15);
    printf("\n\n");
    return 0;
}

 

Link para o comentário
Compartilhar em outros sites

Um exemplo de código menor seria algo assim:

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

int main() {
    int tamanho = 1000;
    int i;

    double vetor[tamanho];
    double entrada = 0;
    double media = 0;

    for (i = 0; i < tamanho; ++i) {
        printf("Digite um número: ");
        scanf("%lf", &entrada);

        if (entrada < 0)
            break;

        vetor[i] = entrada;
        media += entrada;
    }

    if (entrada < 0) {
        media /= i;
        printf("Média: %.2f \n", media);
    }

    return 0;
}

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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