• Matéria: Informática
  • Autor: eduardocampos484
  • Perguntado 3 anos atrás

Você está dando manutenção em um sistema que dada uma string que contém varios itens separados por vírgula, o sistema escreve a string em ordem inversa separada por virgula.

Se o código é :
string ascendente = "0,1,2,3,4,5,6,7,8,9,10";
string[] cadaNumero = ascendente.Split(',');
var descendente = new System.Text.StringBuilder();
for (int i = cadaNumero.Length - 1; i >= 0; i--){
descendente.Append(cadaNumero[i]);
descendente.Append(',');
}
string resultadoFinal = descendente.ToString();
resultadoFinal = resultadoFinal.Remove(resultadoFinal.Length);
Console.WriteLine(resultadoFinal);

Ao executar o compilador emite um erro de SystemOutOfRange que significa que em algum ponto do seu código você tentou acessar um elemento de uma matriz numa posição que não existe.

e que o método Remove(x) de uma string remove um caracter na posição x, o que deve ser alterado no código para que ele funcione corretamente ?
Escolha uma opção:

a. Alterar “string ascendente” para “string[] ascendente”.

b. Alterar “string resultadoFinal = descendente.ToString();” para “string resultadoFinal = descendente.ToString(-1);”.

c. Alterar “int i = cadaNumero.Length - 1; i >= 0; i--)” para “int i = cadaNumero.Length ; i >= 0; i--)”.

d. Alterar “resultadoFinal = resultadoFinal.Remove(resultadoFinal.Length);” para “resultadoFinal = resultadoFinal.Remove(resultadoFinal.Length - 1);.

e. Alterar “Console.WriteLine(resultadoFinal); “ para “Console.WriteLine(resultadoFinal - 1);”.

Respostas

respondido por: elisaaffonsocampos
7

Resposta:

d. Alterar “resultadoFinal = resultadoFinal.Remove(resultadoFinal.Length);” para “resultadoFinal = resultadoFinal.Remove(resultadoFinal.Length - 1);.

Explicação:

d. Alterar “resultadoFinal = resultadoFinal.Remove(resultadoFinal.Length);” para “resultadoFinal = resultadoFinal.Remove(resultadoFinal.Length - 1);.

Perguntas similares