antiblock
Elveron
  • Chatbox

    You don't have permission to chat.
    Load More
Sign in to follow this  
DownD

[Duvida] C++ Arrays

8 posts in this topic

Boas eu estava a tentar fazer um exercicio que era pegar em numeros inseridos pelo utilizador e depois mete-los por ordem crescente.


    int output[30] = {0};
    int input[10];
    int cunt2 = 30;
    int n = 1;
    int m = 1;
    cout << "Input 10 Values" << endl;
    for (int i = 0; i < cunt; i++)
    {
        cin >> input[i];
        cout << "Next " << endl;
        if ((input[i] < output [i-1]) && i != 0)
        {
            output[15 - n] = input [i];
            n++;
        }
        if ((input[i] > output [i-1]) && i != 0)
        {
            output[15 + m] = input [i];
            m++;
        }
        output[0] = input[0];
    }
    cout << "In order crescent are: " << endl;
    n = 1;
    for (int i = 0; i < cunt2; i++)
    {
        if(output[i] != 0)
        {
            cout << n << " - " << output[i] << endl;
            n++;
        }
    }

Alguem pode ajudar sff

Mas este programa apenas voltar a meter os numeros da mesma forma que foram inseridos pelo utilizador.

Share this post


Link to post
Share on other sites
antiblock
https://i.imgur.com/aJ17bf7.gif

Arrays.sort() se não me engano faz por ordem crescente.

 

Documentação na internet ajuda, nunca te esqueças disso.

Obrigado, mas não existe uma maneira manual ? eu queria resolver de acordo com o que aprendi até agora.

Share this post


Link to post
Share on other sites

Com arrays...

 

A maneira mais fácil é com a função que te disse, sem ela só por comparações(?).

 

Mal aprendes a trabalhar com arrays ensinam te a ordenar, eu só me lembro de usar o sort.

 

Como disse por comparações também poderás fazer, o vê este exemplo:

 

Share this post


Link to post
Share on other sites

A única coisa que tens de fazer para ordernar é comparar o valor na posição actual do array com  o valor da posição seguinte e ver se é ou não maior... Se for, guardas o antigo valor numa variável temporária para nã perder informação e fazes a troca...

Share this post


Link to post
Share on other sites

Boas rapaz tens algum mail k me possas fornecer eu ja passei a p1 no meu curso e ainda tenho as coisas de programaçao gurdadas e tenho materia e um exerciciomuito semelhante a esse se kiseres enviote para o mail

Share this post


Link to post
Share on other sites

O objetivo é ele aprender e não ter as coisas já feitas...

Share this post


Link to post
Share on other sites

As vezes vendo o exercicio resolvido e tentando perceber todos os passos é onde se aprende melhor. Deixo aqui um código que fiz rapidamente. Pode ter problemas, mas funciona para o objetivo proposto.

#include <iostream>
#include <iomanip>
#include <string>

using namespace std;

const int NNUMEROS = 5;

int main()
{
	int numeros[NNUMEROS];

	// Preencher o Array
	for (int i = 0; i < NNUMEROS; i++)
	{
		system("CLS");
		cout << ">> Introduz um numero. \n>> ";
		while (!(cin >> numeros[i]))
		{
			cin.clear();
			string dummy;
			cin >> dummy; // throw away garbage.
			cout << ">> Nao introduziste um numero.\n>> ";
		}
		if (cin.eof())
		{
			cin.clear();
		}
		
	}

	system("CLS");
	// Colocar por ordem crescente
	cout << ">> Deseja colocar os numeros por ordem crescente? S ou N \n>> ";
	char dados;
	cin >> dados;
	if (dados == 'S' || dados == 's')
	{
		for (int j = 0; j < NNUMEROS; j++)
		{
			int index = j;
			int menor = numeros[j];
			for (int i = j; i < NNUMEROS; i++)
			{
				if (numeros[i] < menor)
				{
					menor = numeros[i];
					index = i;
				}
			}
			int y;
			y = numeros[j];
			numeros[j] = menor;
			numeros[index] = y;
		}
	}

	// Mostrar o array
	system("CLS");
	for (int i = 0; i < NNUMEROS; i++)
	{
		cout << numeros[i] << " ";
	}
	cout << endl;
}

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this