Ir ao conteúdo
  • Cadastre-se

C++ Vector valor números inteiros


Berus-kun

Posts recomendados

Olá amigos programadores, voltei agora, pois não estava conseguindo entrar, e teve um novo professor de c++, e o novo conteúdo, eu entendi mais ou menos, mas estou com uma duvida neste exercicio:

 

1. Implemente um algoritmo que possibilite a apenas a digitação de valores inteiros em um vetor: o usuário
deve decidir quando parar de inserir.
2. Com o vetor preenchido, implemente uma função que exiba uma lista de opções ao usuário:
3. CASO o usuário digite 1: Imprimir o somatório de seus elementos;
4. CASO o usuário digite 2: Imprimir a média de seus elementos;
5. CASO o usuário digite 3: Imprimir a média e o somatório
6. CASO o usuário digite 4: Substituir por zero todos os valores negativos e imprimir a média;
7. CASO o usuário digite 5: Substituir por zero todos os valores repetidos e imprimir a média e o
somatório;
8. CASO o usuário digite 6: mostrar o vetor ordenado;
9. CASO o usuário digite 0 : Sair da aplicação
Ao final de cada opção, a aplicação deve voltar a exibir a lista de opção (exceto a opção sair)

 

 

fiz o seguinte:

 

#include<iostream>
#include<vector>

using namespace std;

int main(){

int x;
string continuar;

vector<int> numeros;

    numeros.size();

    do{
            cout << "Digite um numero: ";
            cin >> x;

            numeros.push_back(x);

            cout << "Deseja continuar? (s/n)";
            cin >> continuar;

    }while(continuar == "s");

        cout << "Saiu";




return 0;
}

 

 

 

o que tem de errado e o que tem que acrescentar para eu fazer?

(isso eh um pequeno codigos fiz pelo que entendi)

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

2 horas atrás, Berus-kun disse:

@Flávio Pedroza olha eu fiz, mas fiz como se fosse cout e cin, pois não aprendi esse negocio ainda,  case  e break é quase a mesma coisa que cin e cout, certo?

Não, são coisas completamente diferentes. switch/case é equivalente a condicionais if/else.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Flávio Pedroza assim oh:  

 

 

#include<iostream>
#include<vector>

using namespace std;

int main(){

int x;
string continuar;

vector<int> numeros;

    numeros.size();

    do{
            cout << "Digite um numero: ";
            cin >> x;

            numeros.push_back(x);

            cout << "Deseja continuar? (s/n)";
            cin >> continuar;

    }while(continuar == "s");

        cout << "Saiu";
        
        
        
   int opcao;
  cin >> opcao;
  switch (opcao) {
      case 1:
      cout <<"Se digitar 1  1: Imprimir o somatório de seus elementos" << endl;
      break;
      cout <<"Se digitar 2: Imprimir a média de seus elementos" << endl;
      case 2:
     cout << "Se digitar 2: Imprimir a média de seus elementos" << endl;
     break;
      case 3:
      cout <<"Se digitar 3: Imprimir a média e o somatório" << endl;
      break;
      case 4:
      cout <<"Se digitar 4: Substituir por zero todos os valores negativos e imprimir a média" << endl;
      break;
      case 5:
    cout <<"Se digitar 5: Substituir por zero todos os valores repetidos e imprimir a média e o somatório" << endl;
    break;
      case 6:
     cout <<"Se digitar 6:  mostrar o vetor ordenado" << endl;
      break;
       case 0:
       cout <<"Se digitar 0: Sair da aplicação" << endl;
      break;
  }
 
 

 

 

 

return 0;
}
 

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

@Flávio Pedroza tá certo assim né, ou tem que adicionar mais alguma coisa?

adicionado 36 minutos depois

@Flávio Pedroza não deu certo, então fiz isso aqui:

 

#include<iostream>
#include<vector>

using namespace std;

int main(){
int x;
string continuar;
 int opcao;
 cout << "Selecione uma opcao: " << endl;
 cout <<"Se digitar [1]  : Imprimir o somatório de seus elementos,      " << endl;
 cout <<"Se digitar [2]: Imprimir a média de seus elementos" << endl;
 cout <<"Se digitar [3]: Imprimir a média e o somatório" << endl;
 cout <<"Se digitar [4]: Substituir por zero todos os valores negativos e imprimir a média" << endl;
 cout <<"Se digitar [5]: Substituir por zero todos os valores repetidos e imprimir a média e o somatório" << endl;
 cout <<"Se digitar [6]:  mostrar o vetor ordenado" << endl;
 cout <<"Se digitar [0]: Sair da aplicação" << endl;

  
  cin >> opcao;
  switch (opcao) {

vector<int> numeros;

    numeros.size();

    do{
            cout << "Digite um numero: ";
            cin >> x;

            numeros.push_back(x);

            cout << "Deseja continuar? (s/n)";
            cin >> continuar;

    }while(continuar == "s");

        cout << "Saiu";
        
        
    
      case 1:
      break;
      case 2:
     break;
      case 3:
      break;
      case 4:
      break;
      case 5:
     break;
      case 6:
      break;
       case 0:
      break;
  }
 
 

 

 

 

return 0;
}
 

 

 

(não aprendemos switch, mas nada como vídeo aula pra ajudar um pouco) então desse jeito ficar melhor?

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Acredito que a forma abaixo esteja mais próxima do pedido no exercício.

#include <vector>
#include <iostream>

using namespace std;

int main(){

int x;
string continuar;

vector<int> numeros;

    numeros.size();

    do{
            cout << "Digite um numero: ";
            cin >> x;

            numeros.push_back(x);

            cout << "Deseja continuar? (s/n)";
            cin >> continuar;

    }while(continuar == "s");

        cout << "Saiu" << endl;
        
        
        
   int opcao;
   int soma;
   vector<int>::iterator it;
   do
   {
        cout << "Escolha a opção" << endl;
        cout <<"1: Imprimir o somatório de seus elementos" << endl;
        cout <<"2: Imprimir a média de seus elementos" << endl;
        cout <<"3: Imprimir a média e o somatório" << endl;
        cout <<"4: Substituir por zero todos os valores negativos e imprimir a média" << endl;
        cout <<"5: Substituir por zero todos os valores repetidos e imprimir a média e o somatório" << endl;
        cout<<"6:  mostrar o vetor ordenado" << endl;
        cout <<"0: Sair da aplicação" << endl;
        cin >> opcao;
        cin.ignore();
        switch (opcao) {
            case 1: // SOMA
            soma = 0;
            for (it = numeros.begin(); it != numeros.end(); it++)
            {
               soma += *it; 
            }
            cout << "A soma é: " << soma << endl;
            cout << "Pressione enter para continuar" << endl;
            cin.get();
           
            break;
            
            case 2:
            break;
           
            case 3:
            break;
            
            case 4:
            break;
            
            case 5:
            break;
            
            case 6:
            break;
     
           case 0:
           break;
        } 
   }
   while (opcao != 0);
   cout << "Tchau!";
 
 return 0;
}

Veja se consegue fazer o resto (média, ordenar, etc.).

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Você também pode usar um segundo loop para validar as opções

 

#include <iostream>
#include <tchar.h>

using namespace std;

int main()
{
    _tsetlocale(LC_ALL, "portuguese");
    bool fim = false;

    while ( !fim )
    {
        cout << endl << "------------------" << endl;
        cout << "Escolha a opção" << endl;
        cout << "1: Imprimir o somatório de seus elementos" << endl;
        cout << "2: Imprimir a média de seus elementos" << endl;
        cout << "3: Imprimir a média e o somatório" << endl;
        cout << "4: Substituir por zero todos os valores negativos e imprimir a média" << endl;
        cout << "5: Substituir por zero todos os valores repetidos e imprimir a média e o somatório" << endl;
        cout << "6: mostrar o vetor ordenado" << endl;
        cout << "0: Sair da aplicação" << endl;

        int opc;
        cin >> opc;

        while ( opc != 1 && opc != 2 && opc != 3 && opc != 4 && opc != 5 && opc != 6 && opc != 0 )
        {
            cout << "Opcao invalida! Escolha a opcao: ";
            cin >> opc;
        }

        if ( opc == 1 )
        {
            cout << "opcao 1";
        }
        else if ( opc == 2 )
        {
            cout << "opcao 2";
        }
        else if ( opc == 3 )
        {
            cout << "opcao 3";
        }
        else if ( opc == 4 )
        {
            cout << "opcao 4";
        }
        else if ( opc == 5 )
        {
            cout << "opcao 5";
        }
        else if ( opc == 6 )
        {
            cout << "opcao 6";
        }
        else if ( opc == 0 )
        {
            fim = true;
        }
    }

    return 0;
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Flávio Pedrozafiz a dois assim olha:

 int media;
 


            case 2:
            media = 0
            for(it = numeros.begin(); it != numeros.end(), it++)                              
          {
              media %= *it;
          }
           
           cout << "A media é: " << media << enl;
           cout << "Pressione enter para continuar" << endl;
           cin.get();
            break;

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Não está certo. Para calcular a média você soma os elementos e divide pela quantidade de elementos:

case 2:
            media = 0
            for(it = numeros.begin(); it != numeros.end(), it++)                              
          {
              media += *it;
          }
           media = media / numeros.size();
           cout << "A media é: " << media << enl;
           cout << "Pressione enter para continuar" << endl;
           cin.get();
            break;
  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Flávio Pedroza isso:

 

#include <vector>
#include <iostream>

using namespace std;

int main(){

int x;
string continuar;

vector<int> numeros;

    numeros.size();

    do{
            cout << "Digite um numero: ";
            cin >> x;

            numeros.push_back(x);

            cout << "Deseja continuar? (s/n)";
            cin >> continuar;

    }while(continuar == "s");

        cout << "Saiu" << endl;
        
        
        
   int opcao;
   int soma;
   int media;
   vector<int>::iterator it;
   do
   {
        cout << "Escolha a opção" << endl;
        cout <<"1: Imprimir o somatório de seus elementos" << endl;
        cout <<"2: Imprimir a média de seus elementos" << endl;
        cout <<"3: Imprimir a média e o somatório" << endl;
        cout <<"4: Substituir por zero todos os valores negativos e imprimir a média" << endl;
        cout <<"5: Substituir por zero todos os valores repetidos e imprimir a média e o somatório" << endl;
        cout<<"6:  mostrar o vetor ordenado" << endl;
        cout <<"0: Sair da aplicação" << endl;
        cin >> opcao;
        cin.ignore();
        switch (opcao) {
            case 1: // SOMA
            soma = 0;
            for (it = numeros.begin(); it != numeros.end(); it++)
            {
               soma += *it; 
            }
            cout << "A soma é: " << soma << endl;
            cout << "Pressione enter para continuar" << endl;
            cin.get();
           
            break;
            cin >> media;
        cin.ignore();
        switch (media)
            case 2:
            media = 0
            for(it = numeros.begin(); it != numeros.end(), it++)                              
          {
              media += *it;
          }
           media = media / numeros.size();
           cout << "A media é: " << media << enl;
           cout << "Pressione enter para continuar" << endl;
           cin.get();
            break;
            break;
           
            case 3:
            break;
            
            case 4:
            break;
            
            case 5:
            break;
            
            case 6:
            break;
     
           case 0:
           break;
        } 
   }
   while (opcao != 0);
   cout << "Tchau!";
 
 return 0;
}

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Berus-kun    ficou bom , apenas que não precisa desse segundo switch , então seu código com algumas modificações poderia ser assim  :

#include <vector>
#include <locale.h>
#include <iostream>
using namespace std;
int main(){
    system("color ec");
    setlocale(LC_ALL,"portuguese");
    int x;
    string continuar;
    vector<int> numeros;
    numeros.size();
    do{
        cout<<"Digite um numero: ";
        cin>>x;
        numeros.push_back(x);
        cout<<"Deseja continuar? (s/n)";
        cin>>continuar;
    }while(continuar == "s");
    cout<<"\nSaiu\n"<<endl;
    int opcao,soma,media;
    vector<int>::iterator it;
    do{
        cout<<"   Escolha a opção"                           <<endl;
        cout<<"1: Imprimir o somatório de seus elementos"    <<endl;
        cout<<"2: Imprimir a média de seus elementos"        <<endl;
        cout<<"3: Imprimir a média e o somatório"            <<endl;
        cout<<"4: Substituir por zero todos os valores negativos\n";
        cout<<"   e imprimir a média"                        <<endl;
        cout<<"5: Substituir por zero todos os valores repetidos\n";
        cout<<"   e imprimir a média e o somatório"          <<endl;
        cout<<"6: mostrar o vetor ordenado"                  <<endl;
        cout<<"0: Sair da aplicação"                         <<endl;
        cin >> opcao;
        cin.ignore();
        switch (opcao){
        case 1: // SOMA
            soma = 0;
            for (it = numeros.begin(); it != numeros.end(); it++){
                soma += *it;
            }
            cout<<"A soma é: "<<soma<<endl;
            cout<<"Pressione enter para continuar"<<endl;
            cin.get();
            break;
            //switch (media){/* não precisa desse switch */
        case 2:
            soma = 0;/* faltou um ponto e vírgula */
            for(it = numeros.begin(); it != numeros.end(); it++){/* vírgula no lugar de ponto e vírgula */
                soma += *it;
            }
            media = soma / numeros.size();
            cout<<"A media é: "<<media<<endl;/* faltou o d de endl */
            cout<<"Pressione enter para continuar"<<endl;
            cin.get();
            break;
        case 3:
            break;
        case 4:
            break;
        case 5:
            break;
        case 6:
            break;
        case 0:
            break;
        }
    }while(opcao != 0);
    cout<<"\n\nTchau !\n\n\n";
    return 0;
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Em 15/09/2019 às 22:44, devair1010 disse:

@Berus-kun    ficou bom , apenas que não precisa desse segundo switch , então seu código com algumas modificações poderia ser assim  :


#include <vector>
#include <locale.h>
#include <iostream>
using namespace std;
int main(){
    system("color ec");
    setlocale(LC_ALL,"portuguese");
    int x;
    string continuar;
    vector<int> numeros;
    numeros.size();
    do{
        cout<<"Digite um numero: ";
        cin>>x;
        numeros.push_back(x);
        cout<<"Deseja continuar? (s/n)";
        cin>>continuar;
    }while(continuar == "s");
    cout<<"\nSaiu\n"<<endl;
    int opcao,soma,media;
    vector<int>::iterator it;
    do{
        cout<<"   Escolha a opção"                           <<endl;
        cout<<"1: Imprimir o somatório de seus elementos"    <<endl;
        cout<<"2: Imprimir a média de seus elementos"        <<endl;
        cout<<"3: Imprimir a média e o somatório"            <<endl;
        cout<<"4: Substituir por zero todos os valores negativos\n";
        cout<<"   e imprimir a média"                        <<endl;
        cout<<"5: Substituir por zero todos os valores repetidos\n";
        cout<<"   e imprimir a média e o somatório"          <<endl;
        cout<<"6: mostrar o vetor ordenado"                  <<endl;
        cout<<"0: Sair da aplicação"                         <<endl;
        cin >> opcao;
        cin.ignore();
        switch (opcao){
        case 1: // SOMA
            soma = 0;
            for (it = numeros.begin(); it != numeros.end(); it++){
                soma += *it;
            }
            cout<<"A soma é: "<<soma<<endl;
            cout<<"Pressione enter para continuar"<<endl;
            cin.get();
            break;
            //switch (media){/* não precisa desse switch */
        case 2:
            soma = 0;/* faltou um ponto e vírgula */
            for(it = numeros.begin(); it != numeros.end(); it++){/* vírgula no lugar de ponto e vírgula */
                soma += *it;
            }
            media = soma / numeros.size();
            cout<<"A media é: "<<media<<endl;/* faltou o d de endl */
            cout<<"Pressione enter para continuar"<<endl;
            cin.get();
            break;
        case 3:
            break;
        case 4:
            break;
        case 5:
            break;
        case 6:
            break;
        case 0:
            break;
        }
    }while(opcao != 0);
    cout<<"\n\nTchau !\n\n\n";
    return 0;
}

opa desculpa a demora ai, valeu

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois...

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