Форум программистов, компьютерный форум CyberForum.ru

Подобрать к заданному числу ранвую или близкую по значению переменную - C++

Восстановить пароль Регистрация
 
 
NosferatuMax
0 / 0 / 0
Регистрация: 30.10.2012
Сообщений: 61
08.11.2012, 12:23     Подобрать к заданному числу ранвую или близкую по значению переменную #1
Вобщем есть 10 переменных. Пользователь задает число Н и к нему подбирается равная либо большая (максимально к нему близкая) по значению переменная.
Как это осуществить в плане кода?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.11.2012, 12:23     Подобрать к заданному числу ранвую или близкую по значению переменную
Посмотрите здесь:

C++ По матрице и заданному числу построить вектор
Сортировка по заданному числу! C++
C++ По заданному целому числу определить,является ли оно положительным,отрицательным или нулем.
C++ По заданному числу N найти число Х
C++ Даны два неубывающих массива X=(xi),i=1.n, n<=10, и Y=(yi),i=1.m, m<=10 и число q. Найти сумму вида (x(i)+y(j), наиболее близкую к числу q
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
27.11.2012, 16:17     Подобрать к заданному числу ранвую или близкую по значению переменную #21
Может, как-то так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
class Program
{
    static void Main(string[] args)
    {
        const int n = 8;
        Int64[] a = new Int64[] { 6, 28, 496, 8128, 33550336, 8589869056, 137438691328, 2305843008139952128 };
        Int64 k, m = Int64.MaxValue, j = 0;
        int r = 0;
        do {
            Console.Write("Input k: "); 
            k = Convert.ToInt64(Console.ReadLine());
        try
        {
 
            if (k <= 0)
                throw new FormatException();
            else
                break;
        }
 
        catch (FormatException e)
        {
            Console.WriteLine("Vvedite polozhitel`noe chislo:  "+e.Message);
            {
                if (r == 3)
                {
                    Random t = new Random();
                    k = t.Next(1, 100000000);
                    Console.Write("K je nastavene na :   ");
                    Console.Write(k);
                    break;
                }
                else
                   r++;
            }
        }
        } while (true);
        for (int i = 0; i < n; i++)
            if (Math.Abs(a[i] - k) < m && a[i] > k)
            {
                m = Math.Abs(a[i] - k);
                j = i;
            }
        //vypisovani vysledku
        Console.WriteLine(" Nejblizsi dokonale cislo  " + a[j]);
        Console.ReadKey();
    }
}
Честно говоря, еще как с помощью try-catch перенаправлять опять на ввод и проверку. Если Вам без цикла надо, тогда goto используйте
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NosferatuMax
0 / 0 / 0
Регистрация: 30.10.2012
Сообщений: 61
27.11.2012, 23:20  [ТС]     Подобрать к заданному числу ранвую или близкую по значению переменную #22
Кстати у тебя тоже после того как ловит ексепшен консоль закрывается
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
27.11.2012, 23:27     Подобрать к заданному числу ранвую или близкую по значению переменную #23
Это вопрос? Нет, все как надо работает.
NosferatuMax
0 / 0 / 0
Регистрация: 30.10.2012
Сообщений: 61
27.11.2012, 23:31  [ТС]     Подобрать к заданному числу ранвую или близкую по значению переменную #24
Я ничего не меня в конкретно твоем коде, вставляю пишу "ываываывпырлвкп" и ничего не происходит)

Добавлено через 3 минуты
Входная строка имела неверный формат. и подсвечивает желтым k = Convert.ToInt64(Console.ReadLine()); вот все что происходит)

У меня та же проблема, после ексепшена либо закрывается либо ничего не происходит, а надо что бы после 3 неправильных вводов(после 3 ексепшенов) делало

C#
1
2
3
4
5
 Random t = new Random();
                    k = t.Next(1, 100000000);
                    Console.Write("K je nastavene na :   ");
                    Console.Write(k);
                    break;
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
27.11.2012, 23:32     Подобрать к заданному числу ранвую или близкую по значению переменную #25
NosferatuMax, ну, так понятное дело, там эксепшн только на ввод <= стоит.
NosferatuMax
0 / 0 / 0
Регистрация: 30.10.2012
Сообщений: 61
27.11.2012, 23:34  [ТС]     Подобрать к заданному числу ранвую или близкую по значению переменную #26
просто суть что сам ексепшен вписать не проблема но после него тупо конец програмы происходит, нельзя ввести еще раз, да и не надо там ставить <= он по сути сам отлавливает и без этого, проблема что нельзя сделать это много раз(3)
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
27.11.2012, 23:38     Подобрать к заданному числу ранвую или близкую по значению переменную #27
Вот, думаю это: 16 строку переместить в блок try.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.11.2012, 23:51     Подобрать к заданному числу ранвую или близкую по значению переменную
Еще ссылки по теме:

C++ Создание объектов в цикле по заданному числу
C++ Ввычислить вектор по заданной матрице и заданному числу
Шаблон поиска элементов по заданному значению C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
NosferatuMax
0 / 0 / 0
Регистрация: 30.10.2012
Сообщений: 61
27.11.2012, 23:51  [ТС]     Подобрать к заданному числу ранвую или близкую по значению переменную #28
Да все работает как часы...Спасибо, такая мелочь а сколько мучался.
Yandex
Объявления
27.11.2012, 23:51     Подобрать к заданному числу ранвую или близкую по значению переменную
Ответ Создать тему
Опции темы

Текущее время: 13:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru