Ir ao conteúdo
  • Cadastre-se

Vetor em ordem crescente.


LeoNarciso

Posts recomendados

Questão de um exercício que pede vários itens, porém esbarrei em um e não consigo fazê-lo, é mostrar um vetor e depois mostra-lo em ordem crescente, segue o que eu fiz até agora:


#include <iostream>
using namespace std;
const int tam=30;
int vetor[tam], maior, menor, segmenor, segmaior, i, j, posimaior=1, posimenor=1, soma, conta, contacresce;
int cresce[tam], decresce[tam], valorabaixo=0, valoracima=0, meio, media, k;
void carrega(){
for(i=0; i<tam; i++){
vetor[i]=rand()%100+1;
conta++;
soma=soma+vetor[i];
media=soma/conta;
}
}

void mostra(){
for(i=0; i<tam; i++){
cout<<vetor[i]<<" ";
}
cout<<"\n";
}


void numeros(){
for(i=0; i<tam; i++){
vetor[i];
if(i==0){
maior=vetor[i];
menor=vetor[i];
segmenor=vetor[i];
segmaior=vetor[i];
}

if(maior<vetor[i]){
maior=vetor[i];
posimaior=i+1;
}
if(menor>vetor[i]){
menor=vetor[i];
posimenor=i+1;
}
if(segmenor>menor&&vetor[i]<segmenor&&vetor[i]!=menor){
segmenor=vetor[i];
}

if(vetor[i]!=maior&&vetor[i]>segmaior){
segmaior=vetor[i];
}
}
}

void medias(){
for(i=0; i<tam; i++){
vetor[i];
if(vetor[i]==media){
meio=vetor[i];
}//if vetor==media

else{
if (vetor[i]<media){ // Achando a diferenca para valores abaixo da media
if (valorabaixo==0){ // Primeiro valor
valorabaixo = vetor[i];
}//if valorabaixo menor
else{
if (vetor[i]>valorabaixo){
valorabaixo = vetor[i];
}//if valor abaixo igual
}//else
}//else
else{
if(valoracima==0){ // Primeiro valor
valoracima = vetor[i];
}//if valoracima menor
else{
if(vetor[i]<valoracima){
valoracima = vetor[i];
}//if valorcima maior
}//else
}//else
}//if media

}//for i

if ((media-valorabaixo)<(valoracima-media)){ // Acha a menor diferenca com a media
meio=valorabaixo;
}
else{
meio=valoracima;
}
}//void medias

void crescente(){
for(i=0; i<tam; i++){
vetor[i];
cresce[i];
for(k=0; k<tam; k++){
if(vetor[k]<cresce[i]){

cout<<vetor[k]<<" < ";
}
}


}//for i
cout<<"\n";
}//void crescente


int main(){
srand(time(NULL));
carrega();
cout<<"A) VETOR DE 30 NUMEROS: \n";
mostra();
cout<<"________________________________________________________________________________\n";
numeros();
medias();
cout<<"B) VETOR EM ORDEM CRESCENTE:\n";
crescente();
cout<<"________________________________________________________________________________\n";
cout<<"\n\nC) MENOR NUMERO DA MATRIZ= "<<menor<<", E ESTA NA POSICAO "<<posimenor<<".\n\n";
cout<<"D) MAIOR NUMERO DA MATRIZ= "<<maior<<", E ESTA NA POSICAO "<<posimaior<<".\n\n";
cout<<"E) MEDIA= "<<media<<".\n\n";
cout<<"F) SOMA DO MENOR COM O MAIOR= "<<menor+maior<<".\n\n";
cout<<"I) SEGUNDO MENOR NUMERO DO VETOR= "<<segmenor<<".\n";
cout<<" SEGUNDO MAIOR NUMERO DO VETOR= "<<segmaior<<".\n\n";
cout<<"J) SOMA DO SEGUNDO MAIOR COM O SEGUNDO MENOR= "<<segmaior+segmenor<<".\n\n";
cout<<"H) NUMERO MAIS PROXIMO DA MEDIA= "<<meio<<".\n\n";
cout<<"\n\n\n";
system("pause");
}

Quero apenas uma liuz para solução do problema, não a resolução do próprio.

ABRAÇOS!

Link para o comentário
Compartilhar em outros sites

Na função 'crescente()', crie uma variável temporária para armazenar conteúdo do tipo 'int', faça um 'for' para copiar o conteúdo de 'vetor[]' em 'cresce[]', utilize 2 'for' alinhados e uma comparação para ver se 'cresce' é menor ou maior que 'cresce[k]', caso seja menor, faça a troca dos conteúdos utilizando a variável temporária.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para 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...

 

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

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!