Ir ao conteúdo

Posts recomendados

Postado

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
Postado

@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;
}

 

Postado

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

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