Ir ao conteúdo

Posts recomendados

Postado

Olá pessoal estou com uma duvida em relação a um vector que tem que identificar o maior e menor string no vector, pois bem o problema é o seguinte ele verifica o tamanho da string digitada e o valor da string existente na variavel, mas so altera a primeira vez as vezes subsequentes ele não altera a variavel mesmo verificando que ela e maior... segue o codigo para que possam analisar e me ajudar.


vector<string> programa;
vector<int> total_n;

int translate()
{
	int tamanho = ;
	for(int i =; i<programa.size();++i)
	{	
		tamanho = programa[i].size();
	}
	total_n.push_back(tamanho);
	return tamanho;
}

int contador()
{
}

void maior_menor()
{
	int tamanho = translate();
	string menor ="";
	string maior ="";
	
	for(int i = ; i<programa.size(); ++i)
	{
		if (tamanho > maior.length()) maior = programa[i];		
	
	
	}
	
	cout << maior.length() <<"\n"<< menor.length() <<"\n"<< tamanho<<"\n";	
}

//----------------------------------

int main()
{
	vector<string> valor1;
	string tenso;
	while (cin >> tenso){
	programa.push_back(tenso);
	maior_menor();
	}
	
}

Agradeço pelo apoio...

Postado

@Lodibr o que você quis dizer com isso: "mas so altera a primeira vez as vezes subsequentes ele não altera a variavel mesmo verificando que ela e maior..."

Explique melhor o seu problema. o que altera? onde altera? O que era que você queria fazer?. Porque quer alterar?. Se você detalhar bem o seu problema se torna mais fácil te ajudar.

 

abraços...

 

Postado

@CiroboyBR

Pois bem o que quero fazer e o seguinte, preciso verificar qual maior string dentro do vector e qual a menor, no caso o translate() me retorna a quantidade de caracteres na ultima inserção, e eu utilizo esse valor de retorno para verificar se ele e maior que a variavel Maior dentro da função maior_menor() se verdadeiro o ultimo valor digitado é maior que o existente alocado na variavel maior dentro da função maior_menor, ele coloca a nova string dentro da variavel Maior. 

 

o problema é que ele so adiciona o primeiro valor verificado na variavel maior, os que forem digitados depois são adicionados no vector mas não alocados na variavel maior.

 

deu para entender agora amigo? obrigado pelo apoio!

Postado

@Lodibr O problema deve estar nessa parte:

 

for(int i = 0; i<programa.size(); ++i)
	{
		if (tamanho > maior.length()) maior = programa[i];		
	}

Pois você faz um for que eu imagino ser para percorrer o vector, mas você utiliza a variável tamanho. tente assim:

for(int i = 0; i<programa.size(); ++i)
	{
		if (programa[i].size() > maior.length()) maior = programa[i];
	}


abaixo está seu código com algumas correções e mudanças:

 

#include <iostream>
#include <vector>
#include <string>

using namespace std;

vector<string> programa;
vector<int> total_n;

int translate() {
    cout << "\n-------VECTOR------";
    int tamanho = 0, i;
    for(i = 0; i<programa.size(); i++) {
        tamanho = programa[i].size();
        cout << "\nNome: " << programa[i] << endl;
    }
    cout << "\n------------------\n";

    total_n.push_back(tamanho);
    return tamanho;

}


void maior_menor() {
    int tamanho = translate();
    string menor ="";
    string maior ="";

    for(int i = 0; i<programa.size(); ++i) {
        if (programa[i].size() > maior.length()) maior = programa[i];

    }

    cout << maior.length() <<"\n"<< menor.length() <<"\n"<< tamanho<<"\n";
}

//----------------------------------

int main() {
    string tenso;
    while (cin >> tenso) {
        programa.push_back(tenso);
        maior_menor();
    }

}

 

Postado

Obrigado... entendi onde errei, e diga-se por passagem ficou muito bem estruturado seu codigo, vou começar seguir este modelo de organização!

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!