Ir ao conteúdo

Posts recomendados

Postado

Preciso de um programa que calcule a média da quantidade de notas escolares entradas no programa, que é indeterminada. O programa deve entrar com as notas e quando o valor da nota digitada pelo professor for negativa o programa calcula e imprime a média das notas entradas anteriormente e termina sua execução, o programa só deve computar notas no intervalo entre 0 e 10.

Este é meu código, por hora, não funciona como deveria:

 

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <locale.h>
#include <windows.h>
int main()
{
float nota, media;
int de_novo, n_notas, i, flag;
system("cls");
do {
printf("Insira a quantidade de notas : ");
scanf("%d", &n_notas);
media = 0;
i =  0;
while (i < n_notas)
{
do{
printf ("Entre com a nota_%d : ", i + 1);
scanf ("%f", &nota);
flag=0;
if(nota>10)
{
flag=1;
}
if(nota<0)
{
do{
nota>=0;
media = media / n_notas;
printf ("\nA media do aluno e: %0.2f \n", media);
if (media >= 6.0){
printf("\nAprovado.\n");

else {
printf("\nReprovado.\n");
}
printf("\nSe quiser efetuar outro calculo digite 1, se não quiser, digite 0.\n");
scanf("%d", &de_novo);
}while(de_novo);
}    
}while(flag);
media += nota;
i++;
}
if (n_notas > 0)
{
media = media / n_notas;
printf ("\nA media do aluno e: %0.2f \n", media);
if (media >= 6.0){
printf("\nAprovado.\n");

else {
printf("\nReprovado.\n");
}
}
else{
printf ("\nQuantidade de notas inválida.\n");
}
printf("\nSe quiser efetuar outro calculo digite 1, se não quiser, digite 0.\n");
scanf("%d", &de_novo);
} while(de_novo);
return 0;

  • Amei 1
Postado

@Lucca Rodrigues

@Lucca Rodrigues     esse é quase igual ao seu outro algoritmo ,  e ele com algumas modificações poderia ser assim

#include <stdio.h>
#include <math.h>
#include <time.h>
#include <stdlib.h>
#include <locale.h>
#include <windows.h>
int letras[8][5] ={{15,16,14, 1,30}, /* letra  S */
                   {14,17,31,17,17}, /* letra  A */
                   {14, 4, 4, 4,14}, /* letra  I */
                   {17,25,21,19,17}, /* letra  N */
                   {30,17,17,17,30}, /* letra  D */
                   {14,17,17,17,14}, /* letra  O */
                   { 0, 0, 0, 0, 0}, /* letra    */
                   { 1, 2, 4, 0,16}, /* letra  ! */
                  };

/*             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 textcolor_2 (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));
}
                  /* y = linha de 0 a 24 , x = coluna de 0 a 80 */
void gotoxy_2(int x, int y){/*imprimir na linha e coluna desejada */
  COORD c;
  c.X = x;
  c.Y = y;
  SetConsoleCursorPosition (GetStdHandle(STD_OUTPUT_HANDLE), c);
}
int sm[8]={800,400,800,400,2500,200,2500,200};
void som(int f, int d){
    Beep(f,d);/* primeiro a frquência depois o tempo de duração do som */
}
int main()
{
    srand(time(NULL));
    float nota, media;
    int de_novo, n_notas,i,flag;
    textcolor_2(1,15);
    system("cls");
    do {
        textcolor_2(12,15);
        media = 0;
        i =  0;
        printf("Digite as notas ou ( negativo ) para sair\n");
        do
        {
            do{
                textcolor_2(6,15);
                printf ("Entre com a nota_%d : ", i + 1);
                textcolor_2(2,15);
                scanf ("%f", &nota);
            }while(nota>10);
            if(nota>=0)media += nota;
            i++;
        }while(nota>0);
        media /= (i-1);
        textcolor_2(12,11);
        printf ("\nA media do aluno e: %0.2f \n", media);
        if (media >= 6.0){
            textcolor_2(10,12);
            printf("\nAprovado\n");
        }
        else {
            textcolor_2(8,14);
            printf("\nReprovado\n");

        }
        textcolor_2(2,14);
        printf("\nSe quiser efetuar outro calculo digite 1, se não quiser, digite 0.\n   -> ");
        textcolor_2(12,15);
        scanf("%d", &de_novo);

    } while(de_novo);

    int w,px,py,x;                            /* variáveis simples                       */
    HANDLE hOut;                              /* controle dos dispositivos do pc         */
    hOut= GetStdHandle(STD_OUTPUT_HANDLE);    /* pega a saída padrão                     */
    CONSOLE_SCREEN_BUFFER_INFO SBInfo;        /* informações sobre a buffer da tela      */
    GetConsoleScreenBufferInfo(hOut, &SBInfo);/* pega a posição do cursor do console     */
    px = SBInfo.dwCursorPosition.X;           /* pX será a posição da coluna do cursor no console */
    py = SBInfo.dwCursorPosition.Y;           /* pY será a posição da linha do cursor no console  */

    int y1=py,x1=29,y2=y1,x2=x1,j,a,b;    /*y1=linha inicial  y2 para recuperar a linha inicial*/
    for(i=0;i<8;i++){                     /*  sao 8 letras                                    */
        textcolor_2(rand()%15,15);
        for(j=0;j<5;j++){                 /*o caractere é de 5 linhas                          */
            x1 = x2;
            a=letras[i][j];               /*pega o numero da 1 linha do caractere              */
            for(b=0;b<5;b++){             /*aqui eh um numero de apenas 8 bits                 */
                gotoxy_2(x1,y1);
                if(a % 2 != 0){           /*se bit 0 igual 1                                   */
                    printf("%c",219);     /*coloca espaço invertido senão coloca espaço normal */
                }
                else{
                    printf(" ");          /*senão coloca espaço normal                         */
                }
                a=a/2;                    /*dividindo numero por 2 desloca os bits para direita*/
                x1--;
                Sleep(1);
            }
            y1++;                   /*muda para proxima linha                                  */
            x1=x2;                  /*volta para a coluna inicial                              */
        }                           /*proxima linha                                            */
        x2=x2+6;                    /*avança 8 colunas posicionando para o prox caract         */
        y1=y2;                      /*volta para linha inicial                                 */
    }                               /*imprimiu o primeiro caractere                            */
    for(j=0;j<8;j+=2)
        som(sm[j],sm[j+1]);
    Sleep(3000);
    for(x=0;x<5;x++)printf("\n");
    return 0;
}

 

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

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!