Форум программистов, компьютерный форум 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
31.12.2009, 18:08  [ТС]     Проход матрицы используя указатели
решил проблему следующим образом: так как я не знаю что делать с матрицами, взял одномерный масив размером 17*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
47
48
#include <stdio.h>
#include <stdlib.h>
 
int R(int* a)
{
    //иницыализирую переменные под сумы
    int sc = 0, sb;
    //создаю дополнительный указатель
    int* d = a;
    //считаю суму для 1-ой строчки
    for (int i = 0; i < 17; ++i)
    {
        sc += *d;
        d += sizeof(int);
    }
    //считаю сумы для последующих строк
    //и сверяю их с сумою первой строки
    for (int j = 1; j < 17; ++j)
    {
        sb = 0;
        int* d = a + 17*j*sizeof(int);
        for (int i = 0; i < 17; ++i)
        {
            sb += *d;
            d += sizeof(int);
        }
        //если сумы не совпали вывожу 0
        if (sc != sb) return 0;
    }
    return 1;
}
 
int main()
{
    //завожу масив и рандомно его забиваю
    int a[289];
    for (int i = 0; i < 289; ++i)    
    {
            if (i % 17 == 0) printf("\n");
            a[i] = rand() % 100 - 50;
            printf("%4d",a[i]);
    }
    //вызываю функцию
    if ( R(a) ) printf("\nYes\n");
    else printf("\nNo\n");
    getchar();
    return 0;
}
Вопрос: что делать с матрицей?

Добавлено через 7 минут
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
#include <stdio.h>
#include <stdlib.h>
 
int R(int* a[][])
{
    //иницыализирую переменные под сумы
    int sc = 0, sb;
    //создаю дополнительный указатель
    int* d = a;
    //считаю суму для 1-ой строчки
    for (int i = 0; i < 17; ++i)
    {
        sc += *d;
        d += sizeof(int);
    }
    //считаю сумы для последующих строк
    //и сверяю их с сумою первой строки
    for (int j = 1; j < 17; ++j)
    {
        sb = 0;
        int* d = a + 17*j*sizeof(int);
        for (int i = 0; i < 17; ++i)
        {
            sb += *d;
            d += sizeof(int);
        }
        //если сумы не совпали вывожу 0
        if (sc != sb) return 0;
    }
    return 1;
}
 
int main()
{
    //завожу масив и рандомно его забиваю
    int a[17][17];
    for (int i = 0; i < 17; ++i)    
    {
        for (int j = 0; j < 17; ++j)    
        {
            a[i][j] = rand() % 100 - 50;
            printf("%4d",a[i][j]);
        }
        printf("\n");
    }
    //вызываю функцию
    if ( R(a) ) printf("Yes\n");
    else printf("No\n");
    return 0;
}
все ровно ругается, да еще сильнее:
5 C:\Documents and Settings\Администратор\Рабочий стол\ОПіАМ\ІІ семестр\lab_3_99\lab_3_99(2).cpp declaration of `a' as multidimensional array must have bounds for all dimensions except the first
C:\Documents and Settings\Администратор\Рабочий стол\ОПіАМ\ІІ семестр\lab_3_99\lab_3_99(2).cpp In function `int R()':
9 C:\Documents and Settings\Администратор\Рабочий стол\ОПіАМ\ІІ семестр\lab_3_99\lab_3_99(2).cpp `a' was not declared in this scope
C:\Documents and Settings\Администратор\Рабочий стол\ОПіАМ\ІІ семестр\lab_3_99\lab_3_99(2).cpp In function `int main()':
5 C:\Documents and Settings\Администратор\Рабочий стол\ОПіАМ\ІІ семестр\lab_3_99\lab_3_99(2).cpp too many arguments to function `int R()'
47 C:\Documents and Settings\Администратор\Рабочий стол\ОПіАМ\ІІ семестр\lab_3_99\lab_3_99(2).cpp at this point in file
 
Текущее время: 12:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru