Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Заполнение матрицы смежности 
V
    Опции темы
AlexeroN
Дата 22.5.2010, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 10.11.2009
Где: Екатеринбург

Репутация: нет
Всего: нет



Задача в следующем: выдать в файл матрицу смежности, где на главной диагонали должны стоять нули, а остальные элементы которой заполняются случайными числами. Написал такой вот код и где-то допустил ошибку (в программировании не силен), люди добрые подскажите что нужно исправить в тексте программы 
Код

#include<iostream>
#include<fstream>
#include <cstdlib>

using namespace std;

int main()
{
    setlocale(0,"rus");
    ofstream matr;
    matr.open("input.txt");
    int n;
    cout << "Введите число городов, с которым вы хотите работать:" << endl;
    cin >> n;
    int **a;
    a = new int*[n];
    for(int i = 0;i < n;i++)
    {
        a[i] = new int [n];
        for(int j = 0;j <= n;j++)
        {
            *(*(a+i)+j) = 0;//зануляем массивчик
            srand(12345);
            a[i][j] = a[j][i] = rand()%400;
            a[i][i] = 0;
            matr << a[i][j];
            matr << a[i][i];
            delete []a;
        }
    }
    matr.close();
    return 0;
}


Это сообщение отредактировал(а) AlexeroN - 22.5.2010, 21:25

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  Smegn.rar 0,47 Kb
PM MAIL ICQ   Вверх
yeputons
Дата 26.5.2010, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 1.4.2009
Где: Санкт-Петербург

Репутация: 1
Всего: 5



  • Код

    *(*(a+i)+j) = 0;//зануляем массивчик

    Зачем нужна эта строчка? Мы же всё равно потом перезапишем на rand()
  • srand() вызваем один раз и в начале. Иначе будут одинаковые значения постоянно.
  • Код

    delete[] a

    вызываем один раз в конце (после всех циклов). И еще надо будет добавить такой цикл для удаления вложенных массивов (перед строчкой delete[] a):
    Код

    for (int i = 0; i < n; i++)
      delete[] a[i]

    Вы же new для них вызываете? Удалить тоже надо.
  • Код

    for(int j = 0;j < n;j++)

    Цикл делаем не до n, а до n-1

PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0403 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.