PlayMa256 Posted June 24, 2013 at 01:43 AM Report #514647 Posted June 24, 2013 at 01:43 AM bom, estou tentando inserir em um vetor alguns dados que sao obtidos dinamicamente em meu while. Meu vetor tem tamanho de 26, e estou tentando inserir os dados, baseados no resultado de uma funcao, apartir de uma linha lida. tenho entao: int vetorInt[26]; int k=0; while(1){ fgets(vetorChar, 302, stdin); //aqui entra condição de break do laço. colunas = colNum(vetorChar, '\t'); //aqui chega a parte que quero inserir, pra no futuro //fazer um bubble sort, e pegar o seu maior valor. vetorInt[k] = colunas+1 //seria k, se o numero de vezes que ele pode repetir em k, fosse igual ao numero de colunas que tenho. //o meu numero de colunas é no max 26, e o de linhas é 30, entao nao posso simplesmente fazer o que fiz ali atras. //numero de linhas lido k++; } Qual seria a possivel soluçao?
pmg Posted June 24, 2013 at 08:34 AM Report #514653 Posted June 24, 2013 at 08:34 AM Tens que copiar os valores para a frente e meter o valor novo no "buraco". Por exemplo, imagina que tens o array com 10, 20, 30, 40 e mais 6 espacos por usar e queres meter o valor 25 entre o 20 e o 30 Antes: [10|20|30|40|--|--|--|--|--|--] Copiar para a frente: [10|20|--|30|40|--|--|--|--|--] Meter o 25 no sitio: [10|20|25|30|40|--|--|--|--|--] Nota que no fim desta operacao os espacos por usar diminuiram. Se o array estiver cheio nao podes acrescentar um elemento. Se precisas de considerar este caso aconselho o uso de listas ligadas. 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!
PlayMa256 Posted June 24, 2013 at 12:33 PM Author Report #514709 Posted June 24, 2013 at 12:33 PM Infelizmente ainda nao sei sobre listas ligadas, entao terei de me virar com laços de repetição mesmo =/. Nao poderia inserir de qualquer maneira no vetor, ja que mais pra frente vou reorganiza-los?
HappyHippyHippo Posted June 24, 2013 at 01:09 PM Report #514716 Posted June 24, 2013 at 01:09 PM bom, estou tentando inserir em um vetor alguns dados que sao obtidos dinamicamente em meu while. Meu vetor tem tamanho de 26, e estou tentando inserir os dados, baseados no resultado de uma funcao, apartir de uma linha lida. tenho entao: int vetorInt[26]; int k=0; while(1){ fgets(vetorChar, 302, stdin); //aqui entra condição de break do laço. colunas = colNum(vetorChar, '\t'); //aqui chega a parte que quero inserir, pra no futuro //fazer um bubble sort, e pegar o seu maior valor. vetorInt[k] = colunas+1 //seria k, se o numero de vezes que ele pode repetir em k, fosse igual ao numero de colunas que tenho. //o meu numero de colunas é no max 26, e o de linhas é 30, entao nao posso simplesmente fazer o que fiz ali atras. //numero de linhas lido k++; } Qual seria a possivel soluçao? não fazer nada disso, se a intensão é saber qual o valor maior, basta saber esse valor int vetorInt[26]; int first = 1, aux = 0, max = 0; while(fgets(vetorChar, 302, stdin)){ if (first) { first = 0; max = colNum(vetorChar, '\t'); } else { if ((aux = colNum(vetorChar, '\t')) > max) max = aux; } } 1 Report IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
PlayMa256 Posted June 24, 2013 at 11:14 PM Author Report #514855 Posted June 24, 2013 at 11:14 PM (edited) infelizmente depois de varios teste, acabei vendo que ele só retorna da ultima linha inserida, nao retorna um total.... Edited June 25, 2013 at 10:20 PM by PlayMa256
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now