Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 19.02.2019, 17:32   #1
NikSis
Новичок
 
Регистрация: 20.01.2015
Сообщений: 1
Репутация: 10
Злость Работа с одномерными и двумерными массивами

Не понимаю почему так происходит.
В 1 блоке в одномерный массив Landscape03Vtx_1 записываются значения из двумерного массива y[][].
И с Landscape03Idx_1 и r[][] аналогично. Одновременно эти значения записываются в txt файл. (тут ни каких ошибок нет, выводит как и должно).

toch1.txt:
-13.226, -9.78958, 19,
-13.226, -9.78958, 0,
11.774, -9.78958, 0,
11.774, -9.78958, 19,
11.774, 10.2104, 19,
-13.226, 10.2104, 0,
-13.226, 10.2104, 19,
11.774, 10.2104, 0,

face1.txt:
2 1 3
1 4 3
4 5 3
5 8 3
8 5 6
5 7 6
2 6 1
6 7 1
4 1 5
1 7 5
3 8 2
2 8 6


Сразу после этого, во 2 блоке (между ними ни каких операций нет), снова проделывается операция записи одномерных массивов в tet файлы. Вот тут уже возникают ошибки, которые я не понимаю из за чего, при чем меняются не все значения, а только некоторые и только в одном файле. Подскажите в чем проблема.

toch1.txt:
-13.226, 1.6976e-313, 6.95344e-309,
4.17218e-309, 6.95348e-309, 8.34407e-309,
1.39082e-309, 1.39078e-309, 1.11254e-308,
8.3442e-309, -9.78958, 19,
11.774, 10.2104, 19,
-13.226, 10.2104, 0,
-13.226, 10.2104, 19,
11.774, 10.2104, 0,

face1.txt:
2 1 3
1 4 3
4 5 3
5 8 3
8 5 6
5 7 6
2 6 1
6 7 1
4 1 5
1 7 5
3 8 2
2 8 6

Код:
int x = 0; //количество вершин точек сетки
int e = 0; //количество граней сетки
double **y; //массив координат точек
double **r; //массив граней сетки
 
btScalar Landscape03Vtx_1[] = { 0, };
unsigned short Landscape03Idx_1[] = { 0, };
int LandscapeVtxCount_1[] = { 0, };
int LandscapeIdxCount_1[] = { 0, };
btScalar* LandscapeVtx_1[] = { 0, };
unsigned short* LandscapeIdx_1[] = { 0, };
 
//1 Блок
 
int oh1 = 0;
    ofstream toch("D:\\new\\Visualc1\\Cube\\Mesh\\toch1.txt");
    for (int i1 = 0; i1 < x; i1++)
    {
        Landscape03Vtx_1[oh1] = y[i1][1];
        toch << Landscape03Vtx_1[oh1] << " ";
        oh1 = oh1 + 1;
 
        Landscape03Vtx_1[oh1] = y[i1][2];
        toch << Landscape03Vtx_1[oh1] << " ";
        oh1 = oh1 + 1;
 
        Landscape03Vtx_1[oh1] = y[i1][3];
        toch << Landscape03Vtx_1[oh1] << " ";
        oh1 = oh1 + 1;
 
        toch << endl;
    }
 
 
int oh = 0;
    ofstream face("D:\\new\\Visualc1\\Cube\\Mesh\\face1.txt");
    for (int i = 0; i < e; i++)
    {
        Landscape03Idx_1[oh] = r[i][1];
        face << Landscape03Idx_1[oh] << " ";
        oh = oh + 1;
 
        Landscape03Idx_1[oh] = r[i][2];
        face << Landscape03Idx_1[oh] << " ";
        oh = oh + 1;
 
        Landscape03Idx_1[oh] = r[i][3];
        face << Landscape03Idx_1[oh] << " ";
        oh = oh + 1;
 
        face << endl;
    }
 
 
//2 Блок
    ofstream f1231("D:\\new\\Visualc1\\Cube\\Mesh\\toch.txt");
    f1231 << x << endl;
    for (int i = 0; i < x * 3; i++)
    {
        f1231 << Landscape03Vtx_1[i] << " " << Landscape03Vtx_1[i + 1] << " " << Landscape03Vtx_1[i + 2] << endl;
        i = i + 2;
    }
 
    ofstream f12312("D:\\new\\Visualc1\\Cube\\Mesh\\face.txt");
    f12312 << e << endl;
    for (int i = 0; i < e * 3; i++)
    {
        f12312 << Landscape03Idx_1[i] << " " << Landscape03Idx_1[i + 1] << " " << Landscape03Idx_1[i + 2] << endl;
        i = i + 2;
    }
А если между 1 и 2 блоком еще добавить необходимые для программы строки, то и во втором файле значения тоже изменяться.

Код:
    LandscapeVtxCount_1[0] = { x, };
 
    LandscapeIdxCount_1[0] = { e, };
 
    LandscapeVtx_1[0] = { Landscape03Vtx_1, };
 
    LandscapeIdx_1[0] = { Landscape03Idx_1, };
NikSis вне форума   Ответить с цитированием
Старый 19.02.2019, 17:53   #2
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 14,908
Репутация: 2668
По умолчанию

Код:
btScalar Landscape03Vtx_1[] = { 0, };
Какого размера будет массив?
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Pascal ABC.NET] Работа с одномерными и двумерными массивами. egenija_19 Помощь студентам 1 09.05.2017 23:44
Указатели при работе с одномерными и двумерными массивами Credo4444 Помощь студентам 13 20.04.2011 20:04
работа с двумерными массивами Lellya Помощь студентам 0 10.04.2011 23:11
работа с двумерными массивами Lellya Помощь студентам 2 15.02.2011 11:21
Работа с одномерными и двумерными массивами в Delphi arhaon Помощь студентам 4 10.06.2010 15:50


19:45.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.