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

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

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

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

15.10.2010, 18:11. Просмотров 374. Ответов 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;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2010, 18:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Массив заполняется случайными (не теми) элементами (C++):

Двухмерный массив не заполняется случайными цифрами - C++
Задача: 1.Создать структуру данных с двумя компонентами: 1 - двухмерный массив 7*7, 2 - функция заполнения случайными цифрами. 2....

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

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

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

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

Заполнить массив строк из файла. Массив заполняется, но выводится не корректно - C++
Здравствуйте! Такая проблема. В файле имена записаны в столбик и разделены точкой с запятой. Массив заполняется, но выводится не корректно....

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

Добавлено через 4 минуты
Теперь, чисел огромных нет, но и результат неверный
0
kravam
быдлокодер
1695 / 882 / 45
Регистрация: 04.06.2008
Сообщений: 5,460
15.10.2010, 18:42 #4
Дай полностью задание и комменты к циклам
Ну или хоть что-то одно, лучше задание

Добавлено через 14 минут
Предварительный вывод:
Ввиду молчания автора, смею предположить, что инициализировать необходимо ВСЕ Значения массива, чего не происходит в данном листинге, ибо значения матрицы с коэффициентами 0 просто-напросто не инициализируются. В них "мусор". НО выводиться они выводятся. Вот мы и наблюдаем этот мусор в виде больших-больших чисел
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;
}
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;
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2010, 00:54
Привет! Вот еще темы с ответами:

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

Создать две квадратные матрицы со случайными элементами. Найти их произведение - C++
Создать две квадратные матрицы со случайными элементами. Найти их произведение. Есть неправильный черновой вариант (Pascal ABC) program...

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

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
16.10.2010, 00:54
Ответ Создать тему
Опции темы

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