Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
693 / 490 / 251
Регистрация: 10.06.2016
Сообщений: 2,353

Почему искажается массив?

26.04.2018, 12:14. Показов 602. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот такой фрагмент и результат его выполнения. Почему то искажается содержимое массива a после заполнения массива b. Знатоки С++ объясните, пожалуйста, что не так?
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
#include <cstdlib> // для system
#include <iostream> 
#include <string>
 
using std::cout;
using std::cin;
using std::endl;
 
int main()
{    
        double c1,c2,h,k,dmin,dmin_o; 
        int n,i,j,i0;
        double a[3][3];
        double b[3];
        double x[4]={0.6,0.7,0.8,0.9};
        setlocale(0, "");
        for(i=0;i<=3;i++)
        {
        for(j=0;j<=3;j++)
        a[i][j]=0;  
        }
        for(i=0;i<=3;i++)
        cout << a[i][0]<<"*"<< a[i][1]<<"*"<< a[i][2]<<"*"<< a[i][3]<< endl;
        cout << "" << endl;
        for(i=0;i<=3;i++)
            b[i]=1.5;
        for(i=0;i<=3;i++)
        cout << a[i][0]<<"*"<< a[i][1]<<"*"<< a[i][2]<<"*"<< a[i][3]<< endl;
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.04.2018, 12:14
Ответы с готовыми решениями:

Почему искажается изображение?
Не могу понять откуда появляются полоски и искажение изображения. void ReadImage() { /* for (int i=0; i&lt;len; i++) for (int...

Почему возможно задать массив с размером -1 (почему такое вообще компилируется)?
Всем привет. Долгое время не писал на плюсах, решил пройтись по основам, вспомнить. По непонятным для меня причинам этот код...

Искажается текст в ?
Здравствуйте! Столкнулся с такой проблемой: при передаче картинки из ActionScript3 в php и кодировании в нее текста через разделитель...

5
 Аватар для Ovederax
604 / 404 / 212
Регистрация: 30.04.2017
Сообщений: 744
Записей в блоге: 1
26.04.2018, 12:29
slava_psk,
Во всех циклах идет выход за границы массива.
Для массива а и b являются максимальными ячейки a[2][2] и b[2]
Нужно заменить везде условия в циклах "<=3" на "<3" или "<=2"
Это то же не является корректным "a[i][3]" - выход за границы
0
693 / 490 / 251
Регистрация: 10.06.2016
Сообщений: 2,353
26.04.2018, 12:36  [ТС]
Ovederax, Т..е 3 означает не последний индекс, а размер, т.е. i=0,1,2?

Проверил сделав массив a[4][4] все получилось, спасибо. Все же это не хорошо, что компилятор не жалуется за выход индекса за границы массива. В Vb.Net, например это бы не прошло.
0
 Аватар для Ovederax
604 / 404 / 212
Регистрация: 30.04.2017
Сообщений: 744
Записей в блоге: 1
26.04.2018, 12:38
Да, последний индекс на 1 меньше размера
0
518 / 410 / 188
Регистрация: 08.04.2013
Сообщений: 1,750
26.04.2018, 15:17
Любим писать лишнее ??
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int main()
{    
        double c1,c2,h,k,dmin,dmin_o; 
        int n,i,j,i0;
        double a[4][4] = {};// заполнит нулями
        double b[4];
        double x[]={0.6,0.7,0.8,0.9}; // сама знает сколько цифр
        setlocale(0, "");
       // for(i=0;i<=3;i++)
       // {
      //  for(j=0;j<=3;j++)
      //  a[i][j]=0;  
      //  }
        for(i=0;i<4;i++)
        cout << a[i][0]<<"*"<< a[i][1]<<"*"<< a[i][2]<<"*"<< a[i][3]<< endl;
        cout << "" << endl;
        for(i=0;i<4;i++)
            b[i]=1.5;
        for(i=0;i< 4;i++)
        cout << a[i][0]<<"*"<< a[i][1]<<"*"<< a[i][2]<<"*"<< a[i][3]<< endl;
    }
0
693 / 490 / 251
Регистрация: 10.06.2016
Сообщений: 2,353
26.04.2018, 16:03  [ТС]
marat_miaki, да не любим, просто пока не знаем, учимся. Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.04.2018, 16:03
Помогаю со студенческими работами здесь

Искажается иконка приложения
Добрый вечер! Почему у меня иконка у приложения, не как я задумал? И как решить эту проблему? .pro ...

Lineage2: изображение сильно искажается
Я начинаю играть в Lineage2 и через 5-10 мин с экраном происходит вот это-экран сильно эскажается начинает всё рябить и дрыгаться на вирусы...

При печати текст искажается
Собственно вопрос в сабже. При печати получается то, что в прикреплённом скане. Прикрепил пример.

Не уходит в сон/искажается звук
Всем привет. После последней переустановки системы появилось две проблемы с уходом в сон. 1. Если в настройках плана электропитания...

Искажается звук при воспроизведении
искажённый звук в realtek alc665 audio где найти рабочий драйвер или кодек я х.з


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 30.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru