Софтуерно Инженерство
Loading...
+ Нов въпрос
M.Petrova avatar M.Petrova 8 Точки

Progblem 06 - Sum of Two Numbers, Programming Basics Exam - 18 March 2017

Здравейте! Ще съм много благодарна, ако някой може да погледне кода по-долу и да сподели има ли друг начин да го компилира, ОСВЕН с две нови променливи в началото, които да държат стойностите на първото и второто число, поне така написан кода при принтиране на ред 37 не разпознава firstN и secondN заради обсега на променливите.  --> условие: https://judge.softuni.bg/Contests/Practice/Index/480#5        моето решение: https://pastebin.com/sMRMxEEx

 

Тагове:
alabama415 avatar alabama415 101 Точки
Best Answer

Видими са само във for цикъла, това е скоупа на видимостта, променливите вътре във fora си остават видими само в него, ако не са дефинирани по-рано. Трябва да изместиш Console.WriteLine($"Combination N:{combinationCounter} ({firstN} + {secondN} = {magicalNumber})");  преди първия брейк.

  •   if (sum == magicalNumber)

                    {

Console.WriteLine($"Combination N:{combinationCounter} ({firstN} + {secondN} = {magicalNumber})");

                        break;

                    }

 

не ми се пуска визуал студиото,а не знам и условието на задачата ... но общи взето това ти е проблема. Променливи въведени във for цикъла са видими само в него.

 

0
24/08/2017 12:33:56
M.Petrova avatar M.Petrova 8 Точки

Благодаря! С посочената от теб промяна и една if (sum != magicalNumber)   след втория break всичко работи. 

1
spzvtbg avatar spzvtbg 581 Точки

sumata ne trqbva da se subura sum = 1 + 2

0
M.Petrova avatar M.Petrova 8 Точки

Прав си - поправих и това на sum = N1 + N1, а не “+=" . 

0
LenHristova avatar LenHristova 2 Точки

alabama415 вече ти е дал отговор, но друг вариант е да си дефинираш променливите извън циклите. Честно казано не знам кой е по-оптамалният вариант, но ето и моето решение на Java: https://pastebin.com/VBc9Kh9V 

0
M.Petrova avatar M.Petrova 8 Точки

Благодаря! Беше интересно да разгледам и друг подход  - с boolen type.

0
Iliya_iliev avatar Iliya_iliev 1 Точки

здрасти:

пробвай с този код

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SumOfTwoNumbers
{
    class Program
    {
        static void Main(string[] args)
        {
            var startNumber = int.Parse(Console.ReadLine());
            var endNumber = int.Parse(Console.ReadLine());
            var magNumber = int.Parse(Console.ReadLine());
            int sum = 0;
            int exit = 0;
            int combCounter = 0;
            for (int i = startNumber; i <= endNumber; i++)
            {
                if(exit == 1) break;
                for (int j = startNumber; j <= endNumber; j++)
                {
                    sum = i + j;
                    combCounter++;
                    if (sum == magNumber)
                    {
                        Console.WriteLine("Combination N:{0} ({1} + {2} = {3})",
                            combCounter, i, j, sum);
                        exit = 1;
                        break;
                    }
                }
            }

            if (exit == 0)
            {
                Console.WriteLine("{0} combinations - neither equals {1}",
                    combCounter, magNumber);
            }
        }
    }
}
 

0
24/08/2017 14:21:57
IvanBorisovG avatar IvanBorisovG 6 Точки

Още едно по-кратно решение от мен :)  -   https://pastebin.com/S34KYCLD

 

0