Професионална програма
Loading...
+ Нов въпрос
kisyova avatar kisyova 13 Точки

Homework 4: Numbers in Interval Dividable by Given Number

Здравейте ! Знам, че е малко в последния момент за това домашно, но тази задача не ми дава мира :D Явно пропускам нещо елементарно, но вече не си виждам и грешките. Много ще се радвам на малко помощ :)

http://pastebin.com/EVAp5qzN

Тагове:
1
Programming Basics
dimitarstoyanov90 avatar dimitarstoyanov90 164 Точки

Като цяло мога да ти кажа на първо четене, че принтираш грешни неща в смисъл иска се броя на тези числа, демек остави си counter, но се иска и числата които търсим да бъдат принтирани

Опитай се да направиш едно масивче, в което да казваш, че ако има такова число дет няма остатък при делене с 5->>> сложи ми го в масива.. и като намери всичките накрая просто направи още едно for цикълче да обходи масива с нашите числа и да ги изпринти. Малко по - късно ще ти направя пример :)

1
dimitarstoyanov90 avatar dimitarstoyanov90 164 Точки

using System;

class NumbersiIntervalDividableGiven
{
static void Main()
{
Console.Write("Give a start: ");
uint start = uint.Parse(Console.ReadLine());
Console.Write("Give an end: ");
uint end = uint.Parse(Console.ReadLine());
uint[] arrayOfnums = new uint[end + 1]; // тук си правя масива, където да пазя стойностите на числата
int counter = 0;
uint i = 0;

if (start != 0 && end != 0)
{
for (i = start; i < end + 1; i++) // тук махнах = не е нужно да го имаш дебъгни и ще се убедиш :)
{
if (i % 5 == 0)
{
counter++;
arrayOfnums[i] = i; // ако имаме търсеното число го вкарваме в масива
}
}
Console.WriteLine(counter + "");
for (uint d = start; d < end + 1; d++) // с този цикъл обходам масива и принтирам елементите, които ме интересуват ( казал съм да не принтира нулите тъй като по начало като го създавам всички стойности са нула)
{
if (arrayOfnums[d] != 0)
{
Console.WriteLine(arrayOfnums[d]);
}

}
}
else
{
Console.WriteLine("Wrong input!!!");
}

}

}

Ако има нешо питай :) Дано съм помогнал :)

 

Забележи направих една поправка в масива добавих +1 и в двата цикъла за да може изхода да ни е съвсем точен :) 

 

Moderator edit(g.stoyanov):

Точка 12 от правилата: Във всеки пост е позволено цитирането на не повече от 15 реда код. Ако искате да споделите по-дълъг код, използвайте сайтове като Pastebin и Github Gist).

Просто като напомняне на правилата, виждам че коментара ти е помогнал за решението на проблема, за което те поздравявам, но може да съчетаем нещата - Pastebin, Github или друг източник за споделяне на код би улеснил и най-начнаещия да разбере кода. Все пак друго си е един правилно форматиран код.

1
22/11/2014 00:14:46
kisyova avatar kisyova 13 Точки

Наистина много помогна smile

0
kgerov avatar kgerov 49 Точки

След като началото и краят се въведени от потребителя завърти цикъл for. Наалото на цикъла ще е първото число, което е въведено, а краят ще е второто число. Вътре в цикъла провери дали итератора се дели на 5 с модулус оператора и if statement и ако се дели увеличи стойността на променлива count, която трябва да си инициализирала с 0.

 

for (int i = start; i <= end; i++)
{

if (i % 5 == 0)

{

count++;

}

}

1
kisyova avatar kisyova 13 Точки

Благодаря ви много :) не се сетих за начин с масив, но явно тук е добро решение на проблема :)

1
Tisho_Todorov avatar Tisho_Todorov 8 Точки

Здрваей, защо не опиташ нещо подобно идеята е подобна на твоята, но без първият if() от твоето решение.

 

  1.  Console.WriteLine("P = {0}", count);
  2.         Console.Write("Comments = ");
  3.         for (int i = a; i <= b; i++)
  4.         {
  5.             if (% 5 == 0)
  6.             {
  7.                 Console.Write(+ ", ");
  8.             }  
  9.         }

 

Ето и пълното решение:  http://pastebin.com/RzJbbUfy

Желая ти успех !

0
kisyova avatar kisyova 13 Точки

Тази задача съм я мъчила преди 7 месеца някъде :D но благодаря все пак!!! :)

2
BorisSimeonov avatar BorisSimeonov 26 Точки

Numbers in Interval Dividable by Given Number

 

Mod Edit: Използвай цветове, които не дразнят толкова очите. Изкрящото зелено може да се смени с по-приятен за окото цвят.

0
17/11/2014 17:26:04
FunnyBunny avatar FunnyBunny 38 Точки

@Tisho_Todorov: Защо са ни два цикъла? Мисля, че може и един с повече стейтмънти да свърши работа. Аз я реших така. Ако някой сподели какво може да се доискусури, ще се радвам. smile

0