Jump to content

como fazer uma lista de imput?


msmsms

Recommended Posts

EDIT: Parece que afinal pensei mal. (ver post do pmg em baixo)


se o problema pede lista e não devo colocar nenhum array não é?

Um array é uma lista (até no java o ArrayList é um "array com esteroides").

Basicamente, uma lista é algo que guarda dados numa posição e ordenação bem definida.

Contrasta com o conjunto, em que a ordem é um conceito inexistente.

Edited by brunoais

"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Link to comment
Share on other sites

Em C, o que normalmente se designa por lista, é um conjunto de "nós". "Nós" esses que estao encadeados, fazendo uma lista de nós. Um array é uma area de armazenamento de dados contigua capaz de guardar 1 ou mais elementos de determinado tipo.

As diferencas principais sao que o array nao é facil de mudar o tamanho enquanto que a lista muda de tamanho com facilidade extrema. O acesso a qualquer elemento de um array é imediato enquanto que o acesso aos elementos duma lista tem de percorrer todos os elementos anteriores.

Se o problema pede uma lista (no sentido acima), fizeste bem um nao usar array!

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Link to comment
Share on other sites

muito bem

então eu preciso:

1º - pedir e receber n de objectos que já fiz

2º - receber uma lista de numeros ate ao maximo de n objectos

vou tentar continuar e deixo aqui continuação, eu achava que existiria arraylist como no java em c mas tambem um arraylist no java e uma lista sem limite e então aqui há limite n definidos como casas por isso

não estou a ver é como é que na consola vou conseguir colocar os n elementos na lista...

int main()
{
 int n;
 int lista[n];
 printf("numero de objectos:");
 scanf("%d",n);

}

como é que faço agora para pedir e introduzir os numeros inteiros na lista?

segundo a ficha a consola vai receber como input

CONSOLA

linha1: valor n

linha2: numero de coisas A

linha3: numero de coisas B

linha4: numero de coisas C

exemplo:

4 = n

10 = elem 1 da lista

6 = elem 2 da lista

5 = elem 3 da lista

2 = elem 4 da lista

e diz que isto será um conjunto com 4 objectos com os valores {10,6,5,2}

Link to comment
Share on other sites

1º - pedir e receber n de objectos que já fiz

2º - receber uma lista de numeros ate ao maximo de n objectos

What?

int main()
{
   int n;
   int lista[n];
   printf("numero de objectos:");
   scanf("%d",n);

}

Isso não é uma lista, é uma array, e é uma array que está muito mal declarada, para não referir o scanf que tem a falta de um &.

Edited by thoga31

Knowledge is free!

Link to comment
Share on other sites

eu já reparei

não dá para fazer scanf sem fazer printf primeiro?

ou seja colocar o valor na consola sem o pedir?

int main()
{
   int n;
   int lista[n];
   scanf("%d",&n);
}

Claro que é possível! printf e scanf são coisas distintas. Um não implica o outro. 😉

E continuas com uma array declarada com um método, no mínimo, original...

Edited by thoga31

Knowledge is free!

Link to comment
Share on other sites

Claro que é possível! printf e scanf são coisas distintas. Um não implica o outro. 😉

E continuas com uma array declarada com um método, no mínimo, original...

nao percebo o que dizes quanto ao array...

int main()
{
int n;
int lista[n] = {e1,e2,e3,como fazer generico????}
scanf("%d",&n);

}
Edited by msmsms
Link to comment
Share on other sites

Declaras n, e depois declaras a Array com n elementos. Isto não é dinâmico. Nem sei se compila, sequer. Isso não altera o tamanho da array conforme o valor de n, se era isso que estavas a pensar.

O que te vêm vindo a falar é de listas ligadas... apontadores! Não são arrays.

Edited by thoga31

Knowledge is free!

Link to comment
Share on other sites

eu apenas sei que tenho de fazer a consola do IDE receber n coisas sendo que a primeira delas linha 1 é o número das coisas

fazer sem ser generico tambem eu sei mas através de input

input consola:

linha 1 = n numeros;

linha 2 = 1º numero;

linha 3 = 2º numero;

isto se o n colocado na linha 1 for 2

int main()
{
   int n;
   int lista[n] ={};
   scanf("%d",&n);

   while(qualquer coisa){
   scanf("%d",&lista)
   }
}

será este o caminho certo? o que me está a faltar no cerebro vocẽs já têm de facto?

Link to comment
Share on other sites

Mas podes (queres) fazer com arrays ou nao?

Se usas [ e ] no codigo estas a usar arrays!

eu acho que tem de ser com array até porque é um array que tem numero definido de elementos

tinha sentido para mim da seguinte maneira, mas deu erro

int main()
{
int n;
int lista[n] ={};
scanf("%d",&n);
int i;
for (i=0; i<n, i++){
	scanf("%d",&lista)
}
}

fazer os input para a lista é que é o diabo

eu já pesquisei exemplos e não encontro nenhum que faça o que eu preciso

Edited by msmsms
Link to comment
Share on other sites

Tens uma linha no teu codigo que nao é C valido.

        int lista[n] ={};

Nao sei se é C++ valido, pois nao sei C++.

Se queres aprender C, sugiro que configures o teu compilador para dar o maximo de warnings/erros possiveis.

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Link to comment
Share on other sites

o valor n é colocado na consola ai é suposto fazer o pedido de n inteiros para ser formado um array com tamanho n e com n inteiros

o tamanho do array é n

olhas-te o exemplo do objectivo em cima?

eu não quero saber o que tu queres fazer, até porque isso é mais do que claro.

o que eu quero é que abras os olhos e respondas às perguntas feitas

IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

Oh @msmsms, qual foi a parte de...

Declaras n, e depois declaras a Array com n elementos. Isto não é dinâmico. Nem sei se compila, sequer. Isso não altera o tamanho da array conforme o valor de n, se era isso que estavas a pensar.

O que te vêm vindo a falar é de listas ligadas... apontadores! Não são arrays.

...que não percebeste?

Continuas a insistir numa coisa que já três pessoas te disseram que não é possível. Se queres fazer uma lista de n valores, em que esse n é dado pelo utilizador, então não podes declarar uma Array dessa forma. O mais simples, em C, é fazer uma lista ligada.

Algumas linguagens permitem variar o tamanho das Arrays - as chamadas Dynamic Arrays - de uma forma simples, mas em C as coisas não são assim.

Esquece as maravilhas do Python, em que uma lista/array/whatever tinha um tamanho sempre variável. Aqui, em C, tens, em linhas gerais (sem entrar em pormenores), duas coisas: Arrays - tamanho bem definido -, e listas ligadas - tamanho totalmente variável.

Se queres utilizar Arrays, então tens de adoptar um limite máximo, e essa Array deverá ter esse número de elementos. No final haverá, claro, espaço alocado desnecessariamente, mas essas questões deixo para os big boys do C.

Knowledge is free!

Link to comment
Share on other sites

nao é possivel entender o que ninguem consegue fazer entender

nao posso inventar como se faz inputs em c já tentei inventar e não sou bom como deixei em cima deu para ver

o meu objectivo tambem é ignorado, como se faz é o menos o importante é que fica-se feito mas nao ha exemplos com array ou outro bugalhos para eu solucionar com aquilo que sei

input consola:

input 1 = n numeros possiveis de colocar na lista;

lnput 2 = 1º numero da lista;

lnput 3 = 2º numero da lista;

isto se o n colocado no input 1 for 2

Edited by msmsms
Link to comment
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
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.