Ir ao conteúdo

Posts recomendados

Postado

     Estava fazendo um algoritmo que meu professor pediu usando o DevC++, compilei e rodei o código tranquilamente, mas quando eu tento rodar o mesmo exato código pelo Code::Blocks ou compilo ele manualmente com o gcc pelo command prompt do Windows, o código age estranho e fica cheio de bug, alguém sabe o que pode estar acontecendo?

     O exercício é: "Receber as notas de 10 alunos de uma sala de aula nas respectivas matérias: matemática, português e física. Exibir na tela a nota de cada aluno em cada matéria, após isso calcular e apresentar a média das notas em cada matéria".

     Se alguém puder ajudar a ver se tem algo errado no meu código, segue o mesmo:

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

int main()
{
    setlocale(LC_ALL,"");

    int mat[9];
    int port[9];
    int fiz[9];
    int mediaM = 0, mediaP = 0, mediaF = 0;
    int escolha;
    int c, cx;

    for (cx = 0; cx <= 2; cx++) //loop para a escolha das três matérias
    {
    printf("Escolha a matéria que deseja informar as notas: \n");
    printf("[1] - Matemática\n");
    printf("[2] - Português\n");
    printf("[3] - Física\n");
    printf("==============");
    printf("\n");
    scanf("%d", &escolha);

    switch (escolha)
    {
    case 1:
		 if(mediaM > 0)
		 {
		 	printf("Já deu as notas dessa matéria, escolha outra!\n");
		 	cx--;
		 	printf("\n");
		 }
		 else
		 {
			printf("Dê as notas: \n");
	        for(c = 0; c <= 9; c++)
	        {
	            scanf("%d", &mat[c]);
	        }
	        for(c = 0; c <= 9; c++)
	        {
	        	mediaM = (mediaM + mat[c]);
			}
			mediaM = mediaM/10;
			}
        break;
    case 2:
    	if(mediaP > 0)
		 {
		 	printf("Já deu as notas dessa matéria, escolha outra!\n");
		 	cx--;
		 	printf("\n");
		 }
		 else
		 {
			printf("Dê as notas: \n");
        	for(c = 0; c <= 9; c++)
        	{
            	scanf("%d", &port[c]);
        	}
        	for(c = 0; c <= 9; c++)
        	{
        		mediaP = (mediaP + port[c]);
			}
			mediaP = mediaP/10;
		 }

        break;
    case 3:
    	if(mediaF > 0)
        {
		 	printf("Já deu as notas dessa matéria, escolha outra!\n");
		 	cx--;
            printf("\n");
        }
        else
        {
        printf("Dê as notas: \n");
        for(c = 0; c <= 9; c++)
        {
            scanf("%d", &fiz[c]);
        }
        for(c = 0; c <= 9; c++)
        {
        	mediaF = (mediaF + fiz[c]);
		}
		mediaF = mediaF/10;
		}
        break;
    }
    }

    for(c = 0; c <= 9; c++)
    {
    	printf("Nota do aluno %d em Matemática: %d\n", (c+1), mat[c]);
	}
	printf("\n");

    for(c = 0; c <= 9; c++)
    {
    	printf("Nota do aluno %d em Português: %d\n", (c+1), port[c]);
	}
	printf("\n");

	for(c = 0; c <= 9; c++)
    {
    	printf("Nota do aluno %d em Física: %d\n", (c+1), fiz[c]);
	}
	printf("\n");

    printf("Média das matérias\n");
    printf("Matemática: %d\n", mediaM);
    printf("Português: %d\n", mediaP);
    printf("Física: %d\n", mediaF);
    return 0;
}

 

  • Curtir 1
Postado

@devair1010 Já tentei diversas vezes, mas sempre que eu tento, eu seleciono "1" pra dar input nas notas de Matemática e quando coloco a décima nota, o programa pula todas as outras partes e já termina com uns valores absurdos nas outras variáveis.

image.png.deea1a6ce735a87568913a204096f598.png

  • Curtir 1
Postado

@João Friatzsa    experimente colocar essas variáveis aqui lá no inicio antes da main 

int mat [10];
int port[10];
int fiz [10];

e veja esse loop aqui se está com esse valor mesmo

for (cx = 0; cx <3; cx++)

e também coloque esse comando antes do scanf 

printf("Digite A %d Nota De Portugues ",c+1);
fflush(stdin);
scanf("%d", &port[c]);

 

  • Curtir 1
  • Amei 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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!