TOPIC

Runtime error - Preciso de ajuda! Need help!

Emmanuel14 asked 3 years ago

Então, acredito que o problema seja a leitura em diferentes linhas, mas n sei como faço isso xP pfvr, me ajude ;)

So, i believe the problem its the reading are in different lines, but idk how i do that xP pls, help me ;)

        int r = 0;
        string[] scan = Console.ReadLine().Split();
        int a = int.Parse(scan[0]);
        int n = int.Parse(scan[1]);
        while (n <= 0)
            n = int.Parse(Console.ReadLine());
        for (int i = 0; i < n; i++)
        {
            r += a;
            a++;
        }              
        Console.WriteLine(r);

Obrigado! Thanks!

This topic was solved and cannot recieve new replies.

  • rrcarvalho2 replied 3 years ago

            int a, n, soma, i, j;
            string[] entrada = Console.ReadLine().Split(' '); // Cria um vetor de string em que cada posição do string é separada por um espaço
    
            a = int.Parse(entrada[0]); // atribui o valor digitado na primeira posição do string na letra a
            n = int.Parse(entrada[1]); // atribui o valor digitado na segunda posição do string na letra n
    
            i = 1; // atribui um valor em i que deve ser igual o valor da posição do string que quer atribuir em n
            while (n <= 0) // diz que enquanto n for menor ou igual a zero esse laço será executado indefinidamente
            {
                i = i + 1; // cada vez que o laço é executado soma-se mais um em i
                n = int.Parse(entrada[i]); // toda vez que é digitado um numero menor ou igual a zero ele é atribuido no string entrada[i] e esse valor se torna o novo n
                // é importante perceber que todos os valores estarão armazenados porém sempre será o ultimo valor que vai ser armazenado em n (o valor positivo)
                // e isso vai ser importante para o próximo laço
            }
    
            soma = 0; // atribui 0 a soma 
            for(j = 0; j < n; j++) // agora o que foi feito antes vai fazer sentido, pois a variavel j vai ser menor que n e n é igual o último numero que digitamos no laço while
                // ou seja, um número valido (positivo)
            {
                soma = soma + a + j; // aqui será feita a soma da variável A mais seus n consecutivos. n esse que foi determinado no laço while
            }
    
            Console.WriteLine(soma); // sera dada a resposta (saida de dados)
    
            Console.ReadLine();
        }
    
    }

    }

  • rrcarvalho2 replied 3 years ago

    espero ter ajudado até a próxima!

    :D

  • Emmanuel14 replied 3 years ago

    Obrigado Rallison! Pensei que era pra ser quando o cara colocava n <= 0 em seguida do "enter" o console pedia outro numero na mesma linha haha Mas vejo que os números n<=0 já deveriam estar lá antes de pressionar "enter". Obrigado!

  • rrcarvalho2 replied 3 years ago

    é porque no seu laço while quando coloca n = int.Parse(Console.ReadLine()); você não atribui o string scan ao n e sim um numero qualquer que vai digitar e vai pular a linha e a questao pede que seja feito na mesma linha

    eu coloquei comentario no codigo que fiz dessa questão pra ver se te ajuda vou colocar aqui em cima