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

Не пойму почему перменная d изменяет значения - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать программу, формирующую список, куда входят по одному разу элементы, присутствующие в обоих списках http://www.cyberforum.ru/cpp-beginners/thread1171870.html
Ребят, прошу вашей помощи. Я плохо еще разбираюсь в односвязных списках. Мне просто программу с функциями нужно написать, которая формирует список Р. В этот список входят по одному разу элементы,...
C++ Как назначить элементу коплексного массива определенное значение #include <complex> std::complex<double>* in=new std::complex<double> ; //Чтобы установить только real нужно: in= 1; //Как установить ТОЛЬКО imag? //in.imag()= 8; Как правильно нужно написать... http://www.cyberforum.ru/cpp-beginners/thread1171868.html
C++ Нахождение обратной матрицы
Доброго времени суток! Помогите, пожалуйста, с нахождением обратной матрицы. Нашел такой код тут на форуме. Можете ли его максимально упростить или уменьшить? Может есть у кого код проще? Сам...
Работа с функциями Найти Z C++
#include <iostream.h> #include <windows.h> #include <math.h> #pragma argsused int max1() int max2() int min() int main(int argc, char* argv) char str; { int a,b,c;
C++ Рекурсивная функция. Переставить символы в строку по правилу http://www.cyberforum.ru/cpp-beginners/thread1171819.html
Нужна помощь в решении задачи: Переставить символы в строку по правилу: последний символ на первое место, предпоследний на второе и т.д., используя рекурсивную и нерекурсивную функцию.
C++ Удалить из строки все пробелы, расположенные перед знаком препинания Дана строка до точки, группа символов в которой между пробелами считается словом, знаки препинания от слова пробелом не отделяются. Удалить из строки все пробелы, расположенные перед знаком... подробнее

Показать сообщение отдельно
Plohoj
2 / 2 / 0
Регистрация: 16.02.2011
Сообщений: 41

Не пойму почему перменная d изменяет значения - C++

11.05.2014, 01:37. Просмотров 236. Ответов 6
Метки (Все метки)

C++ (Qt)
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
// Kursovay_2.cpp: определяет точку входа для консольного приложения.
//После выхода из функции graf_null изменяется перменная d
 
#include "stdafx.h"
#include <iostream>
#include <conio.h>
 
using namespace std;
 
struct list{
    int data;
    list *next;
};
void graf_input(list **graf, int t1, int t2);
void graf_output(list **graf, int k);
void graf_null(list **graf, int k);
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(0, "rus");
    int d;
    cout << "Введите номер последней вершины: ";
    cin >> d;
    cout << d;
    list *graf = new list[d];
    cout << "Введите вршины рёбер, 0 - конец ввода: ";
 
    graf_null(&graf, d);
    int t1, t2;
    cin >> t1 >> t2;
    while (t1 || t2){
        graf_input(&graf, t1, t2);
        cin >> t1 >> t2;
    }
    graf_output(&graf, d);
    _getch();
    return 0;
}
 
void graf_input(list **graf, int t1, int t2){
    list *tmp1 = new list; list *tmp2 = new list;
    tmp1->data = t2;
    tmp2->data = t1;
    tmp1->next = tmp2->next=0;
    if (graf[t1 - 1] == 0)
    {
        graf[t1-1] = tmp1;
        graf[t2 - 1] = tmp2;
    }
    else
    {
        graf[t1-1]->next = tmp1;
        graf[t2 - 1]->next = tmp2;
    }
}
void graf_output(list **graf, int k){
    list *p;
    for (int i = 0; i < k; i++)
    if ((graf[i] == 0))
    for (p = graf[i]; p; p = p->next)
        cout << i << ": " << p->data << " " << "\n";
 
}
void graf_null(list **graf, int k){
    for (int i = 0; i < k ; i++)
        graf[i] = 0;
}
Добавлено через 1 минуту
не обращаем внимание на то что нет проверки на выход за границы массива
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru