Ir ao conteúdo
  • Cadastre-se

Ajuda em código de cálculos de notas [c]


Velasco Carol

Posts recomendados

Olá, gostaria de pedir ajuda em um programa que estou travado e não consigo desenvolver.
Eu tenho o seguinte código da linguagem c, e tenho que desenvolver a partir deste ou de outro mas que me de o resultado final certo.

Código ©:

#include <stdio.h>
main()
{
float anos, dias;
printf ("Digite sua idade em anos");
scanf ("%f",&anos);
dias = anos*365;
printf ("Sua idade em dias %f", dias);
}

Alguém poderia me ajudar a criar em cima deste programa um outro que receba o nome de um aluno, a nota da sua prova1 e a sua prova2, e que apareça "parabéns" caso esteja aprovado e "refazer a prova", caso esteja reprovado. A média para aprovar é de 50.

Estou com dificuldade pois, a prova1 tem peso 0,4 e a prova2 0,6. Exemplo amigos, 40*0,4=16
50*0,6=33. Deves agora somar os dois resultados, 33+16=49 (com esse resultado final "49", deves ver se está aprovado ou não).

Por favor amigos, me ajudem nesta linguagem, sou iniciante e já quebrei a cabeça tudo quanto foi jeito. 

Link para o comentário
Compartilhar em outros sites

Declare três variáveis, prova1, prova2 e media, ambas to dipo float.

O input das notas será atráves da função scanf.

feito isso basta calcular a média

media = (prova1 * 0.4) + (prova2 * 0.6)
aí é só informar se foi aprovado ou não

if(media >= 50) puts("aprovado"); else puts("reprovado");
Link para o comentário
Compartilhar em outros sites

Declare três variáveis, prova1, prova2 e media, ambas to dipo float.

O input das notas será atráves da função scanf.

feito isso basta calcular a média

 

media = (prova1 * 0.4) + (prova2 * 0.6)
aí é só informar se foi aprovado ou não

if(media >= 50) puts("aprovado"); else puts("reprovado");

 

 

Olá, eu acho que resolvi:

 

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
   char nomealuno[100];
   float nota1,nota2,media;
   printf("\nDigite o nome completo do aluno:\n");
   scanf("%[^\n]s", nomealuno);
   printf("\nDigite a primeira nota:\n");
   scanf("%f",&nota1);
   printf("\nDigite a segunda nota:\n");
   scanf("%f",&nota2);
   media=((nota1*0.4)+(nota2*0.6));
 
 
   if (media >= 50) {
         printf("\nParabens %s, voce foi aprovado(a) com %5.2f\n", nomealuno, media);}
      else {
         printf("\n%s, voce foi reprovado(a) com a media %5.2f\n", nomealuno, media);
   }
 
   return 0;
}
 
 
Você poderia apenas me dizer exatamente para que servistes esta linha: int main(int argc, char *argv[]) {
Link para o comentário
Compartilhar em outros sites

Primeiro, no scanf do nome retire o operador &. Pois quando a função scanf recebe um vetor de char, o próprio vetor já representa o endereço na memória. Por isso não se deve usar o operador & nesse caso.

E no if da mensagem, é claro que a apresentação da mensagem está trocada. Veja:

if (media < 5.0){printf ("\nParabéns %s, voce foi aprovado(a) com:%5.0f\n", nomealuno, media );}
Se media < 5.0, aprovado... Basta mudar para >= 5.0

Mas seu if-else pode ser mais simples, pois basta fazer:

if(media >= 50)    printf("Parabens %s, voce foi aprovado(a) com a media %.2f\n", nomealuno, media);else    printf("%s, voce foi reprovado(a) com a media %.2f\n", nomealuno, media);

Sobre a linha

int main(int argc, char *argv[])
A função main pode ser usada com esses parâmetros para receber argumentos na linha de comando.

O parâmetro argc retorna o número de argumentos passados e argv, que é um ponteiro para array de char, o argumento passado (sendo argv[0] o nome do próprio arquivo binário).

Link para o comentário
Compartilhar em outros sites

Veja se há algo errado, ou tenha que mudar ou simplificar, por favor.

 

1º código

 

#include <stdio.h>

#include <stdlib.h>

 

int main (int argc, char *argv[]) {

  char nomealuno[100];

  float nota1, nota2, media;

 

  printf ("\nDigite o nome completo do aluno:\n");

  scanf ("%[^\n]s", &nomealuno);

  printf ("\nDigite a primeira nota:\n");

  scanf ("%f", &nota1 );

 

  printf ("\nDigite a segunda nota:\n");

  scanf ("%f", &nota2);

  media = ((nota1*0.4) + (nota2*0.6));

 

  /* --------------- */

  printf("nome do aluno : %s\n", nomealuno);

  printf("       nota 1 : %f\n", nota1);

  printf("       nota 2 : %f\n", nota2);

  /* --------------- */

 

  if (media>= 50){

    printf ("\nParabens %s, voce foi aprovado(a) com:%5.0f\n", nomealuno, media );

  } else {

    printf ("\n%s, voce foi reprovado(a) com a media:%5.0f, refazer a disciplina\n", nomealuno, media );

  }

 

  return 0;

}

 

 

 

2º código

 

#include <stdio.h>

#include <stdlib.h>

int main(int argc, char *argv[]) {

   char nomealuno[100];

   float nota1,nota2,media;

   printf("\nDigite o nome completo do aluno:\n");

   scanf("%[^\n]s", nomealuno);

   printf("\nDigite a primeira nota:\n");

   scanf("%f",&nota1);

   printf("\nDigite a segunda nota:\n");

   scanf("%f",&nota2);

   media=((nota1*0.4)+(nota2*0.6));

 

 

   if (media >= 50) {

         printf("\nParabens %s, voce foi aprovado(a) com %5.2f\n", nomealuno, media);}

      else {

         printf("\n%s, voce foi reprovado(a) com a media %5.2f\n", nomealuno, media);

   }

 

   return 0;

}

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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