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

Определить индекс и значение элемента массива, ближайшего к числу Х - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Линейный конгруэнтный генератор http://www.cyberforum.ru/cpp-beginners/thread835795.html
Доброго времени суток, дамы и господа. Мне необходимо узнать способы реализации ЛКГ (линейного конгруэнтного генератора) на языке C++, а также способы проверки его мощности, периода и разброса. Если...
C++ Наследование классов Здравствуйте всем! Классы и наследования еще не изучил а задали решить задачу. Просьба может у кого - нибудь есть что -то подобное(или находили в сети) или может какая нибудь литература где... http://www.cyberforum.ru/cpp-beginners/thread835770.html
C++ Запись string в бинарный файл
Есть структура: struct Anketa { std::string name, family, brith_Date, tel; }; Надо что бы они записывали в бинарный файл данные и затем можно было считать. Целиком структуру не...
C++ Архитектура программы "Морской бой"
Пишу морской бой, с возможностью игры, как с компьютером, так и с другим человеком по сети. Не получается продумать архитектуру программы. В программе хочу использовать паттерн Strategy, чтоб можно...
C++ Найти количество цифр, которые входят в каждое из 3 чисел http://www.cyberforum.ru/cpp-beginners/thread835731.html
Даны три натуральных числа А, В, С. Найдите количество цифр, входящих одновременно в состав каждого из для этих чисел. Входные данные: 3 числа, каждое в своей строке, не больше 1000000. Выходные...
C++ Игра со спичками Сама игра следующая: на стол выкладывается достаточно большая кучка спичек (не менее 50). Каждый игрок при своем ходе берет спички из кучки. Нужно взять, по крайней мере, одну и не более, чем вдвое... подробнее

Показать сообщение отдельно
SummerRain
326 / 325 / 17
Регистрация: 16.12.2012
Сообщений: 544
12.04.2013, 15:05
у меня выходила ошибка только тогда, когда вводил число наиболее близкое к нулевому элементу массива, т.е. к 1000.
Просто в этом случае переменная otv не инициализируется. Добавил 23 строку
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
#include <stdio.h>
#include <conio.h>
 
void FunctionPrint(int a[],const int b);
 
int main()
{
int const count = 10;
int myArray[count] = {1000,400,1200,4200,800,600,100,8000,400,6200};
int x; // vvodimoe chislo
int z; // raznost` mejdu elementa massiva i vvedenim chislom
int otv; // zdes` hranitsya maximalno blizkii index elementa massiva
int p;
FunctionPrint(myArray,count);
 
printf("Vvedite chislo: ");
scanf_s("%d",&x);
printf("\n");
 
p = x - myArray[0];
if(p<0) p *= -1;
z = p;
otv = 0;  // добавил
 
for(int j=1;j < count;j++)
{
    p = x - myArray[j];
    if(p<0) p *= -1; // berem modul`
    printf("%d \n",p);
    if( z > p)
    {
        z = p;
        otv = j;
    }
}
 
printf("Index = %d \n",otv);
printf("znachenie = %d ", myArray[otv]);
 _getch();
return 0;
}
 
void FunctionPrint(int a[],const int b)
{
    for(int i=0;i<b;i++)
    {
        printf("%d ",a[i]);
    }
    printf("\n");
}
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru