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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Feytan
1 / 1 / 0
Регистрация: 09.12.2010
Сообщений: 93
#1

Массив - C++

01.06.2011, 21:28. Просмотров 293. Ответов 4
Метки нет (Все метки)

Подскажите, что не так делаю:

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
54
55
#include <iostream>
 
using namespace std;
 
int main ()
{
        int n, m, i, j, k, n1, m1;
        float mas_U[i][j];
        float e=0.000001, d1, d2, max_pogr, next;
        n=11; //задаем количество строк в массиве
        m=9; //задаем количество столбцов в массиве
        d1=10/6;
        d2=5;
        n1=n-1;
        m1=m-1;
        for(i = 0; i < n; i ++)
        {
              for(j = 0; j < m; j ++)
              {
                    mas_U[i][j] = 0;
              }
        }
        
        for(i = 9; i < n; i++)
        {
        mas_U[i][0]=5;
        }
        for(j = 1; j < 7; j ++)
        {
              mas_U[0][j] = mas_U[0][j+1] + d1;
              }
        for(j = 8; j < m ; j ++)
                {
              mas_U[0][j] = mas_U[0][j+1] - d2;
              }
        for(k = 0;; k ++)
                    {
                        max_pogr = 0;
                        for(i = 1; i < n1; i ++)
                        {
                            for(j = 1; j < m1; j ++)
                            {
                                next = (mas_U[i+1][j] + mas_U[i-1][j] + mas_U[i][j+1] + mas_U[i][j-1])/4;
                                if((mas_U[i][j] - next) > max_pogr) max_pogr = (mas_U[i][j] - next);
                                mas_U[i][j] = next;
                            }
                        }
                        if(max_pogr <= e || k >= 10000) break; 
                        else cout<<mas_U[i][j]<<"  ";
 
                    }
    system("pause");
    
        return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.06.2011, 21:28     Массив
Посмотрите здесь:

Разделить массив на массив четных положительных и массив остальных - Pascal ABC
дана последовательность из 20 эл. надо её отсортировать на 2 массива. условия видны в задании Program z_6; Uses Crt; Var ...

из заданного теста выбрать цифры и записать в массив N ,а буквы - в массив B .Все остальные символы записать в массив S - Pascal
Привет всем.Помогиет пожалуйста решить задачку из заданного теста выбрать цифры и записать в массив N ,а буквы - в массив B .Все...

Вывести на печать массив X, массив Z, массив Y, произведение элементов массива X, упорядоченный массив Y - QBasic
Вывести на печать массив X, массив Z, массив Y, произведение элементов массива X, упорядоченный массив Y. ...

Сформировать массив, который будет состоять из чисел, входящих как в массив A, так и в массив B - C (СИ)
Задание: На основе исходных массивов A и B (n и m – рабочие размеры массивов) сформировать массив C, который будет состоять из чисел,...

Дан одномерный массив A из N элементов. Переписать положительные элементы массива в массив B, а отрицательные в массив C - Pascal
Дан одномерный массив A из N элементов. Переписать положительные элементы массива в массив B, а отрицательные в массив C.

Дан массив целых чисел а(12). Переписать в массив х четные, а в массив у нечетные элементы массива а - Turbo Pascal
Помогите пожалуйста решить эту задачу. Массив a выводит на печать. Я пишу a mod 2 = 0 , а он мне 41 ошибку выдает. Что делать? Вот...

Массив: Отсортировать полученный массив 3 способами: по строкам, по столбцам( возр.), 3) и весь массив - Delphi
Помогите, пожалуйста ,решить задачу. Очень нужно. Задан массив (4*6). Элементы задаются по правилу: если j&gt;3, то Aij=i+j, иначе...

Массив: Как сделать так, чтобы результирующий массив представлял собой измененный по заданным правилам первый массив? - C++ Builder
Доброй ночи форумчане, очередной нубо-вопрос не требует отлагательств имеется одномерный массив, из которого по заданным условиям...

Массив. Разделить на два: массив элементов с четными и массив с нечетными индексами - Pascal ABC
VII.Одномерные массивы 50. Задан массив с количеством элементов N. Сформировать два массива: в первый включить элементы исходного массива...

Построить массив d из элементов, которые входят как в массив a так и в массив b - C (СИ)
Дан массив a и b состоящий из n элементов. Построить массив d из элементов, которые входят как в массив a так и в массив b. Желательно с...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
adico
13 / 13 / 1
Регистрация: 24.02.2011
Сообщений: 64
01.06.2011, 21:50     Массив #2
И этот код компилится?

Добавлено через 52 секунды
Просто создавать и инитилизировать массив не константной длинны нельзя.
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
01.06.2011, 21:54     Массив #3
adico, в некоторых компиляторах можно.
grizlik78
Эксперт С++
1903 / 1435 / 109
Регистрация: 29.05.2011
Сообщений: 2,990
01.06.2011, 22:01     Массив #4
Но тогда эти переменные надо хотя бы инициализировать

Добавлено через 3 минуты
В общем начало, видимо, предполагалось такое:
C++
1
2
3
4
5
        int i, j, k, n1, m1;
        float e=0.000001, d1, d2, max_pogr, next;
        int const n=11; //задаем количество строк в массиве
        int const m=9; //задаем количество столбцов в массиве
        float mas_U[n][m];
Feytan
1 / 1 / 0
Регистрация: 09.12.2010
Сообщений: 93
02.06.2011, 00:56  [ТС]     Массив #5
Я вот изменил как grizlik78 сказал и кое-что сам изменил
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
54
55
#include <iostream>
 
using namespace std;
 
int main ()
{
        int i, j, k, n1, m1;
        float e=0.000001, d1, d2, max_pogr, next;
        int const n=11; //задаем количество строк в массиве
        int const m=9; //задаем количество столбцов в массиве
        float mas_U[n][m];
        d1=10/6;
        d2=5;
        n1=n-1;
        m1=m-1;
        for(i = 0; i <= n; i ++)
        {
              for(j = 0; j <= m; j ++)
              {
                    mas_U[i][j] = 0;
              }
        }
        
        for(i = 9; i < n; i++)
        {
        mas_U[i][0]=5;
        }
        for(j = 1; j <= 7; j ++)
        {
              mas_U[0][j] = mas_U[0][j+1] + d1;
              }
        for(j = 7; j < m ; j ++)
                {
              mas_U[0][j] = mas_U[0][j+1] - d2;
              }
        for(k = 0;; k ++)
                    {
                        max_pogr = 0;
                        for(i = 1; i < n1; i ++)
                        {
                            for(j = 1; j < m1; j ++)
                            {
                                next = (mas_U[i+1][j] + mas_U[i-1][j] + mas_U[i][j+1] + mas_U[i][j-1])/4;
                                if((mas_U[i][j] - next) > max_pogr) max_pogr = (mas_U[i][j] - next);
                                mas_U[i][j] = next;
                            }
                        }
                        if(max_pogr <= e || k >= 10000) break; 
                        else cout<<mas_U[i][j]<<"  ";
 
                    }
    system("pause");
    
        return 0;
}
Подскажите она вообще работает правильно или нет. Я вроде все правильно делал. Сама задача должна расчитывать внутренние значения массива, если граничные известны.
Yandex
Объявления
02.06.2011, 00:56     Массив
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru