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

Проход матрицы используя указатели - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сижу на зачете !! http://www.cyberforum.ru/cpp-beginners/thread81683.html
Народ, плиз помоите. сижу на зачете. Написать прогу котрая считывает массив целых чисел с клавиатуры, пользователь вводит значение и прога ищет это значение в массиве... ПЛИЗ с использованием указателей
C++ Страж включения - это... ? Всем доброго времени суток. Меня заинтересовал такой вот вопрос - Что такое "Страж включения", для чего используется, и "с чем его едят" ? )) http://www.cyberforum.ru/cpp-beginners/thread81621.html
Ошибка сегментации... C++
Пытаюсь написать программу, которая может хранить массив из произвольного числа объектов класса. Но при попытке записать данные в класс, программа вылетает. Как же быть? Оператор new - НЕ подходит, т. к. количество объектов массива может быть изменено в любой момент, и следовательно, память будет постоянно "перевысвобождаться". Вот эксиз класса: class person {
C++ ошибка vs
когда пытаюсь запустить игру выходит ошибка http://www.cyberforum.ru/games/thread42138-page2.html мне кажется что это из-за visual studio , помогите может кто знает в чём проблема. Добавлено через 2 часа 36 минут проблема: хочу например поиграть в gta 4, при запуске не дает запустится visual studio 2005 выпрыгивает окошко, какая-то там отладка нужна и т.д и не запускается игра, как от нее...
C++ ввод матриц http://www.cyberforum.ru/cpp-beginners/thread81352.html
Есть задача "Написать и протестировать функцию для сложения и вычитания вещественных матриц. Одним из формальных параметров должен быть признак вида операции." Возник вопрос: по задаче должны складываться и вычитаться матрицы. Но! дано N-кол-во матриц (допустим нужно сложить не 2, а 5 матриц) как объявить это кол-во матриц, что они произвольного размера ( размер вводим с клавиатуры ( A B Cи...
C++ Исправьте прогу, пожалуйста! Прога про массивы.... Задача:Написать программу. Размерности массивов вводить с клавиатуры. Элементы массивов по желанию пользователя вводить с клавиатуры или генерировать случайным образом в заданных пределах. Исходные данные и результаты выводить на экран дисплея в табличном виде. В квадратной матрице поменять местами элементы, симметричные относительно главной диагонали. Пытался написать прогу, много ошибок,... подробнее

Показать сообщение отдельно
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
03.01.2010, 13:17  [ТС]     Проход матрицы используя указатели
Вот к чему я пришёл, спасибо всем за подлезные советы.
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
44
45
46
#include <iostream>
#include <string.h>
using namespace std;
 
class str
{
private:
    char** a;
    int sz, maxlen;
public:    
    str (int m) 
    {
        sz = 0;
        maxlen = m;
        a = (char**) calloc(1,sizeof(char *));
        a[0] = (char*) calloc(maxlen,sizeof(char *));
    }
    ~str(){}
    void push(char* s)
    {
        a = (char**) realloc(a,(++sz) * sizeof(char *));
        a[sz-1] = (char*) calloc(maxlen,sizeof(char *));
        strncpy(a[sz-1],s,maxlen);
        cout << "\n\nshow size " << sz << ":" << endl;
        str::show();
        cout << "\n\n";
    }
    void show()
    {
        for (int i = 0; i < sz; ++i)
            cout << i+1 << "-th string:\t" << a[i] << "\n";
    }
    int size(){return sz;}
 };
 
int main()
{
    str s(2<<10);  //1024
    char* st = (char*) calloc(100,sizeof(char));
    while (gets(st))
        s.push(st);
    cout << "\n\nshow size " << s.size() << ":" << endl;
    s.show();
    getchar();
    return 0;
}
Добавлено через 18 часов 52 минуты
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
 
int R(int** a, int n)
{
    //оголошуємо та ініціалізуємо змінні, для розрахунку сум в b-c
    //рядках, та сповпцях
    int sb = 0, sc = 0;
    //проходимо масив по рядках
    for (int i = 0; i < n; ++i)
    {
        //якщо шукаємо суму в першому рядку, обнулюємо суму для 
        //елементів першого рядка, інакше обнулюємо суму для
        //елементів другого рядка
        (i) ? sb = 0 : sc = 0;
        for (int j = 0; j < n; ++j)
            //визначається для якого рядка вираховувати суму
            (i) ? sb += a[i][j] : sc += a[i][j];
        //якщо суми не співпали та ми пройшли мінімум 2 рядки
        //повертаємо 0
        if (sc != sb && i) return 0;
    }
    //аналогічно зі стовпцями
    for (int i = 0; i < n; ++i)
    {
        (i) ? sb = 0 : sc = 0;
        for (int j = 0; j < n; ++j)
            (i) ? sb += a[j][i] : a[j][i];
        if (sb != sc && i) return 0;
    }
    //якщо під час підпрограми всі суми зпівпали, повертаємо 1
    return 1;
}
 
int main()
{
    //вводимо розмірність масиву
    int n;
    scanf("%d", &n);
    //виділяємо память під масив вказівників розміром n
    int** a = (int **) malloc(n * sizeof(int *)); //---------------------------------------
    //виділяємо память під масив значень елементів розіром n
    for (int i = 0; i < n; ++i)
        a[i] = (int *) malloc(n * sizeof(int));//-------------------------------------------
    //заповнюємо масив випадковими значеннями в інтервалі (-50;+50)
    //та виводимо отриману матрицю на дисплей
    for (int i = 0; i < n; ++i)
    {
        printf("\n");
        for (int j = 0; j < n; ++j)
        {
            a[i][j] = rand() % 100 - 50;
            printf("%4d", a[i][j]);
        }
    }
    //виводимо результат в залежності від значення, що повертає фінкція
    printf(R(a, n) ? "\n\nYes\n" : "\n\nNo\n");
    system("pause");
    return 0;
}
почему в выделенных местах нельзя ставить calloc ? выделял с помощью "//---------------------"
 
Текущее время: 11:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru