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

Массив заполняется случайными (не теми) элементами - C++

Войти
Регистрация
Восстановить пароль
 
kdteam
0 / 0 / 0
Регистрация: 19.03.2010
Сообщений: 6
15.10.2010, 18:11     Массив заполняется случайными (не теми) элементами #1
Доброго времени суток!
Определенными циклами задаются значения массива. Циклы исправны (проверял в Паскале). Проблема в том, что в массиве вместо нужных значений в некоторых местах возникают числа типа 8000000000.
Как с этим бороться?
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
#include <conio.h>
#include <stdlib.h>
#include <math.h>
#include <stdio.h>
#include <iostream.h>
//************
int main() {
 
int n,i,j; 
cout<<"Size of array: " ; 
cin>>n;
int **Z = new int *[n] ; 
for(i = 0; i<n ; i++)  
Z[i] = new int [n] ;  
//0
for (i=1; i<n; i++) {
    for (j=1; j<n+1-i; j++) {
        Z[i][j]=0;
    }
}
//2
for (i=1; i<n; i++) {
    for (j=n+1-i; j<n; j++) {
        Z[i][j]=2;
}}
 
//1
for (i=1; i<n; i++) {
    for (j=n+1-i; j<n; j++) {
        if (j==n+1-i) { Z[i][j]=1;}
}}
 
 
//ECHO
cout<<"\n Massiv";
cout<<"\n";
for (i=0;i<n;i++)
for (j=0; j<n; j++)
 
cout <<Z[i][j]<<" ";
 
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2010, 18:11     Массив заполняется случайными (не теми) элементами
Посмотрите здесь:

Заполнить случайными элементами массив, умножить каждый элемент на два и вывести C++
C++ Не заполняется динамический массив
C++ вычислите сумму элементов, которая расположена между теми элементами,которые сами расположены между первым и последним отрицательными элементами.
Массив не заполняется значениями C++
Не заполняется массив C++
Написать программу, вычисляющую среднее арифметическое всех элементов массива из 200 элементов. Массив заполняется случайными числами C++
Двухмерный массив не заполняется случайными цифрами C++
не правильно заполняется массив C++
Не заполняется массив указателей C++
C++ Не заполняется массив
Не заполняется массив C++
C++ Сгенерировать три массива со случайными элементами типа Integer

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7955 / 4717 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
15.10.2010, 18:16     Массив заполняется случайными (не теми) элементами #2
Массивы в Си/C++ начинаются с нулевого элемента. То есть цикл должен начинаться с нуля.
kdteam
0 / 0 / 0
Регистрация: 19.03.2010
Сообщений: 6
15.10.2010, 18:24  [ТС]     Массив заполняется случайными (не теми) элементами #3
С циклами не доглядел. Исправил.
Однако, проблема осталась

Добавлено через 4 минуты
Теперь, чисел огромных нет, но и результат неверный
kravam
быдлокодер
 Аватар для kravam
1513 / 873 / 44
Регистрация: 04.06.2008
Сообщений: 5,302
15.10.2010, 18:42     Массив заполняется случайными (не теми) элементами #4
Дай полностью задание и комменты к циклам
Ну или хоть что-то одно, лучше задание

Добавлено через 14 минут
Предварительный вывод:
Ввиду молчания автора, смею предположить, что инициализировать необходимо ВСЕ Значения массива, чего не происходит в данном листинге, ибо значения матрицы с коэффициентами 0 просто-напросто не инициализируются. В них "мусор". НО выводиться они выводятся. Вот мы и наблюдаем этот мусор в виде больших-больших чисел
kdteam
0 / 0 / 0
Регистрация: 19.03.2010
Сообщений: 6
15.10.2010, 19:46  [ТС]     Массив заполняется случайными (не теми) элементами #5
Спасибо! Я разобрался сам. Оказалось, что проблема в том, что кол-во строк или столбцов мы задаем обычным числом, а нумерация циклов начинается с 0. Нужно было отнять 1 от переменной n (кол-во строк/столбцов - у меня квадратная матрица)
Вот код
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
#include <conio.h>
#include <stdlib.h>
#include <math.h>
#include <stdio.h>
#include <iostream.h>
//************
int main() {
 
int n,i,j;
cout<<"Size of array: " ;
cin>>n;
int **Z = new int *[n] ;
for(i = 0; i<n ; i++)
Z[i] = new int [n] ;
//0
for (i=0; i<n-1; i++) {
for (j=0; j<n-i; j++) {
Z[i][j]=0;
}
}
//2
for (i=0; i<n; i++) {
for (j=n-i-1; j<n; j++) {
Z[i][j]=2;
}}
 
 
for (i=0; i<n; i++) {
for (j=n-i-1; j<n; j++) {
if (j==n-i-1) { Z[i][j]=1;}
}}
 
 
//ECHO
cout<<"\n Massiv";
cout<<"\n";
for (i=0;i<n;i++) {
for (j=0; j<n; j++) {
 
cout <<Z[i][j]<<" ";
} cout <<"\n"; }
return 0;
}
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
16.10.2010, 00:54     Массив заполняется случайными (не теми) элементами #6
Цитата Сообщение от kdteam Посмотреть сообщение
int **Z = new int *[n] ;
Хорошо бы память очистить!!!

C++
1
2
3
for(i=0; i<n-1; i++)// 
    delete Z[i];
    delete [] Z;
Yandex
Объявления
16.10.2010, 00:54     Массив заполняется случайными (не теми) элементами
Ответ Создать тему
Опции темы

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