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

Как просчитать шаги от домов до магазина - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сложная задача про полный квадрат http://www.cyberforum.ru/cpp-beginners/thread694037.html
Есть 9 разных чисел a,b,c,d,e,f,g,h,i. Сумма любых двух разных чисел из данного ряда является полным квадратом. При этом a+b+c=d+e+f=g+h+i и сумма (a+b+c) должна быть минимальная. Ничего не могу придумать. Помогите пожалуйста. Добавлено через 1 час 51 минуту (извините не правильно условие понял) ИЗМЕНЕННЫЙ ВАРИАНТ: найти произведение целых чисел: a,b,c,d,e,f,g,h,i; таких что...
C++ Как разобраться с ошибками в коде Помогите пожалуйста разобраться с ошибками в коде вот код: #include <iostream.h> #include <string.h> int main () { struct strc{ http://www.cyberforum.ru/cpp-beginners/thread694036.html
C++ Как работает кэш?
Здравствуйте! Хочу понять как работает кэш. Задание такое: Нам надо нарисовать желтый квадрат на белом листе, для этого нам надо задать параметры CMYK (cyan, magenta, yellow, black). У нас есть кэш на 2048 байта с блоком в 32 байта. struct point_color { int c; int m; int y;
C++ Сложная задача про полный квадрат
Есть 9 разных чисел a,b,c,d,e,f,g,h,i. Сумма любых двух разных чисел из данного ряда является полным квадратом. При этом a+b+c=d+e+f=g+h+i и сумма (a+b+c) должна быть минимальная. Ничего не могу придумать. Помогите пожалуйста. Добавлено через 2 часа 7 минут (извините не правильно условие понял) ИЗМЕНЕННЫЙ ВАРИАНТ: найти произведение целых чисел: a,b,c,d,e,f,g,h,i; таких что...
C++ Нужно найти сколько всего чисел и среднее арифметическое чисел максимального и минимального http://www.cyberforum.ru/cpp-beginners/thread693994.html
Помогите найти мне сколько всего чисел и среднее арифметическое чисел максимального и минимального. int main() { setlocale(LC_ALL,""); srand (time(0)); int i; int a; int b;
C++ Вычисление текстовой формулы Есть электронная таблица, в ячейке записано что то типа: =C1+AC234/A1. Для вычисления такой формулы нужно для каждого адреса ячейки (C1, AC234, A1) вызвать метод таблицы calculate('C', 1), calculate('AC', 234), calculate('A', 1). Получить значение типа double и вставить в формулу. Потом всё это надо вычислить... По первой части хочется спросить про аналог регулярных выражений, т.к. нужно... подробнее

Показать сообщение отдельно
Kandelyabr
7 / 7 / 0
Регистрация: 03.04.2012
Сообщений: 15
11.11.2012, 18:38     Как просчитать шаги от домов до магазина
Цитата Сообщение от valeriikozlov Посмотреть сообщение
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
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
    int a[10][2], i, j, i_max=-1;
    for(i=0; i<10; i++)
    {
        cin>>a[i][0];
        a[i][1]=20;
    }
    for(i=0; i<10; i++)
        if(a[i][0]==2)
        {
            for(j=0; j<10; j++)
                if(a[j][0]==1 && a[j][1]>abs(i-j))
                    a[j][1]=abs(i-j);
        }
    for(i=0; i<10; i++)
        if(a[i][0]==1)
        {
            if(i_max==-1)
                i_max=i;
            else
                if(a[i][1]>a[i_max][1])
                    i_max=i;
        }
    cout<<a[i_max][1]<<endl;
 
 
    return 0;
}
Программа составлена верно лишь в том случае, если на массиве из 10 домов 1 магазин, а в условии сказано, что хотя бы 1 магазин, соответственно при числе магазинов от одного и выше правильный результат будет выводиться для одного, последнего магазина в массиве.

Добавлено через 1 минуту
Эта программа верно считает наименьшее расстояние из наиболее отдалённых домов.
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
#include <iostream>
using namespace std;
 
int k=0, l=0, a = 10;
 
int length(int *buf1, int *buf2) {
    int n[k], m;
    for(int i=0; i<k; i++) {
        n[i] = a;
        for(int j=0; j<l; j++) {
            if(buf1[i] > buf2[j]) m = buf1[i] - buf2[j];
            else
                m = buf2[j] - buf1[i];
            if(m < n[i]) n[i] = m;
        }
    }
    m = 0;
    for(int i=0; i<k; i++) {
        if(n[i] > m) m = n[i];
    }
    return m;
}
 
int main()
{
    int a = 10, town[a], buf1[a - 1], buf2[a - 1];
    for(int i=0; i<a; i++) {
        cin >> town[i];
        if(town[i]==1) {buf1[k] = i; ++k;}
        if(town[i]==2) {buf2[l] = i; ++l;}
    }
    if(k<1) {
        cout << "Error. Number of houses k = " << k << " >= 1.\n";
        return 1;
    }
    if(l<1) {
        cout << "Error. Number of markets l = " << l << " >= 1.\n";
        return 1;
    }
    cout << length(buf1, buf2);
    return 0;
}
 
Текущее время: 20:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru