Ir ao conteúdo

Posts recomendados

Postado

Bom, eu peguei a base deste codigo em um vidoe do youtube mas dei umas adaptadas, só n estou conseguindo fazer ele funcionar, gostaria de pegar no vetor "num[x]" a posição "i" mas ele entende que "num[i]" é um outro vetor que não foi declarado, gostaria de saber como resolvo isso

 

#include <iostream>
#include <cstdlib>

using namespace std;
int main (void)

{

	int x;
    int num[x], aux, i, j;

    setlocale(LC_ALL, "portuguese");


	cout<<"quantos números voce deseja inserir?\n";
	cin>>x;
	cout<<"escreva os números\n";
	for(i=0; i<x; i++){
		cin>>num[i];
  		cout<<endl;

	}

	for(i=0; i<x; i++){
		for(j=i+1; j<x; j++){
			if(num[1] > num[j])
			{aux = num[i];
			 num[i] = num[j];
			 num[j] = aux;
			}

		}

	}

cout<< endl;
for(i=0; i<x; i++){
	cout<<num[i] <<endl;

}

    system("pause");
    return (0);

}

 

  • Curtir 1
Postado

@Pablo Correa_06    essa variável  x foi criada mas não recebeu nenhum valor , assim o compilador finaliza a execução do programa , para não danificar nenhuma memória do pc ,  e um outro erro é que você colocou o número "1" no vetor dentro do loop for de ordenação e seria a letra "i" ,  assim :

 

#include <iostream>
#include <cstdlib>
#define cls system("cls||clear");
using namespace std;
int main (void)
{
  int x;
  cout << "quantos números voce deseja inserir ?";
  cin  >> x; /// pegar o valor de x primeiro
  int num[x] ;
  int aux = 0;
  int i   = 0;
  int j   = 0;
  setlocale(LC_ALL, "portuguese");
  cout<<"escreva os números\n";
  for( i=0; i<x; i++ )
  {
    cin  >> num[i];
  }
  for( i=0; i<x; i++ )
  {
    for( j=i+1; j<x; j++ )
    {
      if( num[i] > num[j] ) /// colocou nUmero 1 e era letra i
      {
        aux    = num[i];
        num[i] = num[j];
        num[j] =    aux;
      }
    }
  }
  cout << "nUmeros OrDenados:\n" << endl;
  for(i=0; i<x; i++)
  {
    cout << num[i] << endl;
  }
  system("pause");
  cls
  return 0;  
}

 

  • Obrigado 1
Postado
1 hora atrás, Pablo Correa_06 disse:
	int x;
    int num[x], aux, i, j;

 

Não existe num[x]. O tamanho de num deve ser conhecido em tempo de compilação. 

 

Sobre o "código base"

 

Esse é praticamente um programa C e em C também não existe isso do modo como está usando. E nem compila. leu as mensagens do compilador? Deve ter visto algo assim na declaração de num:
 

original.cpp(9,13): error C2131: expression did not evaluate to a constant

 

E é um programa ruim.

  • declare as variáveis de controle do loop DENTRO do for
  • evite esse tipo de for em C++
  • declare uma variável por linha
  • ao perguntar algo mantenha o cursor na MESMA linha
  • não use system(). NUNCA
  • não use "pause". Não ;e legal seu programa ficar parado depois que terminou. É muito chato. E se tiver um script para rodar seu programa e outros ele vai ficar lá parado. Programas não são criados para rodar no IDE e depois sumirem. Se o IDE não para ou configurou errado ou deve mudar de ambiente.

 

Se quer um vetor em C++ pode usar

 

#include <iostream>
#include <vector>
using namespace std;

int main(void)
{
    int x;
    cout << "quantos numeros voce deseja inserir?\n";
    cin >> x;
    cout << "escreva os numeros\n";

    vector<int> num(x);
    cout << "vetor tem " << num.size() << " elementos\n";
    return 0;
}

 

Que mostra

 

quantos numeros voce deseja inserir?
42
escreva os numeros
vetor tem 42 elementos

 

Mas entenda que pode nem precisar disso: em C++ os vetores tem tamanho dinâmico e pode ir inserindo enquanto precisar.

Não tem razão para usar stdlib --- de C --- aqui nesse programa.

  • Obrigado 2
Postado

muito obrigado @arfneto e @devair1010

@arfneto eu apenas estava seguindo o que meu professor do técnico ensinou, mas obrigado pelas dicas e pela ajuda.

 

alias, sobre as "mensagens do compilador" o programa que eu uso (dev c++) parou de mostrar essas mensagens, e não sei como ativa-las novamente, se souber, poderia me dizer como faço isso?

  • Obrigado 1

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!