Ir ao conteúdo
  • Cadastre-se

C Algoritmo funciona dependendo do IDE


Posts recomendados

     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
Link para o comentário
Compartilhar em outros sites

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