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

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

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

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

15.10.2010, 18:11. Просмотров 366. Ответов 5
Метки нет (Все метки)

Доброго времени суток!
Определенными циклами задаются значения массива. Циклы исправны (проверял в Паскале). Проблема в том, что в массиве вместо нужных значений в некоторых местах возникают числа типа 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++
Задача: 1.Создать структуру данных с двумя компонентами: 1 - двухмерный массив 7*7, 2 - функция заполнения случайными цифрами. 2....

вычислите сумму элементов, которая расположена между теми элементами,которые сами расположены между первым и последним отрицательными элементами. - C++
вычислите сумму элементов, которая расположена между теми элементами,которые сами расположены между первым и последним отрицательными...

Написать программу, вычисляющую среднее арифметическое всех элементов массива из 200 элементов. Массив заполняется случайными числами - C++
сделaй их nested: http://www.dansteinman.com/dynduo/en/nesting.html

Создать статический массив со случайными элементами из заданного диапазона - C++
Знает кто-то, как решить задачу на С++? При помощи одномерного динамического массива? Программа должна создать два статических массива...

Заполнить случайными элементами массив, умножить каждый элемент на два и вывести - C++
Программа получения одномерного массива, состоящего из 20 элементов с помощю датчика случайных чисел. Каждый элемент пассива умножить на 2,...

Сгенерировать три массива со случайными элементами типа Integer - C++
задание: Сгенерировать три массива со случайными элементами типа Integer длиной 100, 1000 и 10000 элементов, соответственно. подскажите...

Программа должна создать два статических массива со случайными элементами из диапазона [0;10] - C++
Знает кто-то, как решаеся задача на С++? Программа должна создать два статических массива со случайными элементами из диапазона , по 10...

Программа должна создать два статических массива со случайными элементами из диапазона [5;20] - C++
Кто знает, как решается задача на С++? Программа должна создать два статических массива со случайными элементами из диапазона , по 10...

Программа должна создать два статических массива со случайными элементами из диапазона [-25;25] - C++
Кто знает, как решить задачу на С++? Программа должна создать два статических массива со случайными элементами из диапазона , по 10...

Не заполняется массив - C++
#include &quot;stdafx.h&quot; #include &quot;iostream&quot; using namespace std; int m, n, a, b, c; int mas; int masd; int _tmain(int argc,...

Не заполняется массив - C++
Здравствуйте, не передается заполненный массив и не понимаю в чем проблема: N = 15 void Print(int *a, int n) { for (int...

Не заполняется массив - C++
Здравствуйте! Подскажите, пожалуйста, почему при создании нового массива, размерность создается, а сам массив не заполняется. Код: ...


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

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

Добавлено через 4 минуты
Теперь, чисел огромных нет, но и результат неверный
kravam
быдлокодер
1691 / 878 / 44
Регистрация: 04.06.2008
Сообщений: 5,424
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
885 / 779 / 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     Массив заполняется случайными (не теми) элементами
Ответ Создать тему
Опции темы

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