Ir ao conteúdo
  • Cadastre-se

C Problema em Programa com Vetores


Infante98
Ir à solução Resolvido por devair1010,

Posts recomendados

/*Construa um programa que permita fazer a estatística das notas de uma turma :

• A média das notas
• A nota mais baixa
• A nota mais alta
• Quantas notas com mais de 10 valores

O programa deverá pedir inicialmente o número de notas(máximo 10) que o utilizador pretende inserir e
as notas deverão ser guardadas num vector.*/

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()

{
	float nota[10] = { 10, 12, 11, 8, 5, 14, 11, 12, 9, 18 };
	float media = 0;
	float soma = 0;
	float max = nota[0];
	float min = nota[0];
	int n = 0;
	int mais_de_10 = 0;
	char continuar = 'c';

	do
	{

		printf("\n Insira o numero de notas que pretender analisar. \n");
		scanf("%i", &n);

		while (n < 0 || n > 10)
		{
			printf("\n O numero de notas eh no maximo 10!!! \n");
			printf("\n Insira o numero de notas que pretender analisar. \n");
			scanf("%i", &n);
		}

		for (int i = 0; i < n; i++) // Para Calcular a mádia.
		{
			soma += nota[i];
		}

		media = soma / n;

		printf("\n A media das notas eh de %1.1f", media);


		for (int i = 1; i < n; i++) //  Para ver a nota mais alta.
		{
			if (nota[i] > max)
			{
				max = nota[i];
			}
		}

		printf("\n A nota mais Alta eh %1.1f", max);


		for (int i = 1; i < n; i++) //  Para ver a nota mais Baixa.
		{
			if (nota[i] < min)
			{
				min = nota[i];
			}
		}

		printf("\n A nota mais Baixa eh %1.1f ", min);


		for (int i = 1; i < n; i++) //  Para ver quantas notas com mais de 10 valores.
		{
			if (nota[i] > mais_de_10)
			{
				mais_de_10 = nota[i];
			}
		}

		printf("\n Existem %1.0f notas com mais de 10 valores. \n", mais_de_10);

	}

	while (continuar == 's');

	system("pause");
}

Boa tarde, estou com um problema no ultimo objectivo deste programa ( "Quantas notas com mais de 10 valores" ). O resto funciona tudo, só não estou a conseguir implementar o ultimo ciclo for de maneira correta. Alguém pode ajudar?

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

@Infante98    o for está tudo bem , mas dentro do if sim , tem um errinho , pois você está atribuindo o valor da maior notas a variável mais_de_10 , e o que precisa é ir incrementando essa mesma variável assim  :

if (nota[i] > 10){
    //mais_de_10 = nota[i];
    mais_de_10++;
}

 

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

 

@Infante98    desculpe , eu não testei e ficou outro erro  , ali , no if :

if (nota[i] > mais_de_10)    /* precisa comparar com o valor 10 */
  
assim :

if(nota[i] > 10)
    mais_de_10++;

e também para imprimir os tipo int , use %d , pois o mais_de 10 é int e não float nem long float nem double ,  e seu código com algumas modificações poderia ser assim  :

/*Construa um programa que permita fazer a estatística das notas de uma turma :

• A média das notas
• A nota mais baixa
• A nota mais alta
• Quantas notas com mais de 10 valores

O programa deverá pedir inicialmente o número de notas(máximo 10) que o utilizador pretende inserir e
as notas deverão ser guardadas num vector.*/

#define _CRT_SECURE_NO_WARNINGS
#define _WIN32_WINNT 0X0501
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <math.h>
#include <ctype.h>
#include <conio.h>
#include <windows.h>
#define cls system("cls");
#define H GetStdHandle(STD_OUTPUT_HANDLE)
void textcolor_2(int l, int f){SetConsoleTextAttribute(H,l+(f<<4));}
int main(){
    float nota[10] = { 10, 12.5, 11.7, 8.9, 5.8, 14, 11, 12, 9.3, 18.1 };
    float media,soma,max,min;
    int n,i,mais_de_10;
    char continuar='S';
    do{
        cls
        do{
            textcolor_2(11,0);
            printf("\nInsira o numero de notas que pretender analisar : ");
            scanf ("%d",&n);
            if(n<1 || n>10){
                textcolor_2(12,15);
                printf("\n  O numero de notas eh no maximo 10!!!  \n");
            }
        }while(n<1 || n>10);
        soma=0;
        for(i=0; i<n; i++){   // Para Calcular a mádia.
            soma += nota[i];
        }
        mais_de_10=0;
        max=0;
        min=nota[0];
        media = soma / n;
        textcolor_2(14,9);
        printf("\n  A media das notas %c de %.2f  \n\n",130,media);
        for(i=0; i<n; i++){
            if(nota[i] >= max)    /*  Para ver a nota mais alta. */
                max = nota[i];
            else
                min = nota[i];    /*  Para ver a nota mais baixa. */
        }
        textcolor_2(12,15);
        printf("  A nota mais Alta  %c    %.2f  \n\n",130,max);
        textcolor_2(11,12);
        printf("  A nota mais Baixa %c     %.2f  \n\n",130,min);
        for(i=0;i<n;i++)          /* Para ver quantidade de  nota maior que 10 . */
            if(nota[i] > 10)
               mais_de_10++;
        textcolor_2(11,0);
        printf("Existem %d notas com o valor Maior Que 10. \n\n",mais_de_10);
        textcolor_2(14,0);
        printf("Quer Fazer Outra M%cdia S/N ",130);
        continuar = (char)getch();
    }while(toupper(continuar) == 'S');
    printf("\n\n");
    system("pause");
    printf("\n\n\n");
    textcolor_2(10,12);
    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...