Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
João Friatzsa

C Algoritmo funciona dependendo do IDE

Recommended Posts

     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

Compartilhar este post


Link para o post
Compartilhar em outros sites

@João Friatzsa    testei aqui no codeblocks e funcionou de boa ,  talvez seja por que você está usando o prompt .     tente usar o codblocks do jeito normal, pressionando f9 .

Editado por devair1010
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • @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

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • @devair1010 Então eu realmente não sei, de qualquer jeito vou torcer pra rodar quando for mostrar pro professor, mas de qualquer jeito, obrigado!

    • Curtir 1

    Compartilhar este post


    Link para o post
    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

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • @devair1010 Cara, muito obrigado! Funcionou, até tinha tentado usar o fflush(stdin) mas antes do scanf da "escolha". Mas agora foi, valeuzão mesmo!

    • Curtir 2

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário

    Entre para seguir isso  





    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

    ×