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  
Paulo Sérgio Oliveira Coutinho

C++ Aplicação da função main

Recommended Posts

Preciso criar uma pequena aplicação em C/C++ com a função main recebendo parâmetros, de forma que os parâmetros sejam entendidos como as 3 notas de um aluno em uma disciplina e informe sua média, considerando o sistema de cálculo da média utilizado pela instituição(média das duas maiores notas). Eu até fiz em C++ o seguinte código:

#include <iostream>
#include <stdlib.h>

using namespace std;

int main()
{
    float a1, a2, a3, media;
    {
        cout << "Informe a nota de A1 desse aluno: ";
        cin >> a1;

        cout << "Informe a nota de A2 desse aluno: ";
        cin >> a2;

        cout << "Informe a nota de A3 desse aluno: ";
        cin >> a3;

        if((a1 <= a2) && (a1 <= a3)) media = (a2+a3)/2;
        if((a2 <= a1) && (a2 <= a3)) media = (a1+a3)/2;
        if((a3 <= a1) && (a3 <= a2)) media = (a1+a2)/2;
    }
    cout << "A media do aluno e' " << media;
}

 

Porém, não consegui aplicar com a função main, onde só consegui o seguinte parâmetro básico:

int main(int argc, char** argv)

 

Agradeço qualquer ajuda que puderem me dar.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Paulo Sérgio Oliveira Coutinho Na teoria a função main é composta por:

 

int argc :   Recebe a quantidade de argumentos recebidos

char *argv[] : Recebe os argumentos como string's, então use atoi/atof para converter para inteiro/double e usar como nota.

 

Para acessar os argumentos, basta acessar os índices de argv, lembrando que argv[0] é o nome do executável. Use:

//verifica se foi recebido algum argumento
if(argc > 1){
   //imprime os argumentos
   for(int i = 1; i < argc; i++){
     printf("Argumento: %d %s\n",i, argv[i]);//argv[i] = argumentos
   }
}

Então se você ir no cmd e executar o programa assim:

> x.exe 

 

o argv[0] argumento é x.exe

 

Com argumentos:

 

> x.exe Nota1 Nota2

 

o argv[0] argumento é x.exe

o argv[1] argumento é a string Nota1

o argv[2] argumento é a string Nota2

 

 

 

 

 

Editado por TYSQUARE89
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Paulo Sérgio Oliveira Coutinho  Montar é fácil, eu quero que você entenda como funciona... Segue o exemplo de cima:

#include <stdio.h>
  
int main(int argc, char *argv[]){
	//verifica se foi recebido algum argumento
	if(argc > 1){
      	int i;
   		//imprime os argumentos
        for(i = 1; i < argc; i++){
     		printf("Argumento: %d - Contem: %s\n",i, argv[i]);//argv[i] = argumentos
   		}
	}
  	return 0;
}

 

Para enviar argumentos, ou você abre pelo prompt ou pelo executar(WinKey + R).

Editado por TYSQUARE89

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • Eu até já montei o código, como segue:

     

    #include <iostream>

    using namespace std;

    void Media(int media, int *a1, int *a2, int *a3)
    {
        if((*a1 <= *a2) && (*a1 <= *a3)) media = (*a2+*a3)/2;
        {
            if((*a2 <= *a1) && (*a2 <= *a3)) media = (*a1+*a3)/2;
            {
                if((*a3 <= *a1) && (*a3 <= *a2)) media = (*a1+*a2)/2;
                {
                }
            }
        }
    }
    int main()
    {
        float a1, a2, a3, media;
        {
            cout << "Informe a nota de A1 desse aluno: ";
            cin >> a1;

            cout << "Informe a nota de A2 desse aluno: ";
            cin >> a2;

            cout << "Informe a nota de A3 desse aluno: ";
            cin >> a3;
        }
        cout << "A media do aluno e' " << media << "\n";
    }

     

    Porém, ele tá acumulando lixo e não tá dando o resultado correto, pensei na função fflush, mas não consegui aplicar, pode me ajudar?

     

    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

    ×