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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Программа работает, не не совсем правильно... http://www.cyberforum.ru/cpp-beginners/thread81853.html
Напечатать вектор первых букв слова, которые начинаются и заканчиваются на указаный символ (т.е. надо вывести адрес строки и адреса первых букв слов, удовлетворяющих условию). В принципе программа работает, но у меня есть подозрения, что выводимые адреса символов неверные. void task3(){ char *s, c, z; int i, p, t; cout<<"Input z:"; cin>>z; printf ("Intut basic string:\n"); s=new...
C++ Выдаёт ошибку... Строчка 32. #include <iostream> #include <conio.h> #include <math.h> #include <stdio.h> using namespace std; bool prime(int n) { bool v; http://www.cyberforum.ru/cpp-beginners/thread81847.html
C++ комбинации чисел
здравствуйте, помогите дауну создать проэкт. visual studio 2005-2008 вот мне данно готовый пакет string ;IntToString(int intValue) // Credits to http://www.techbytes.ca/techbyte100.html { char *myBuff; string strRetVal; // Create a new char array myBuff = new char;
Работа с массивами и списками. Методы сортировки и поиска. C++
помогите написать програму Задачa Написать программу которая выполняет следующие действия: 1) считывает данные из файла и сохраняет их в памяти в виде списока с двойными связями 2) Выводит данные на экран в виде двух столбцов. , Разделенных тремя символами пробела. Столбцы должны иметь заголовки X и Y соответственно. 3) Сортировать данные по возрастанию или по убыванию по выбору...
C++ Структурная переменная http://www.cyberforum.ru/cpp-beginners/thread81789.html
Помагите решить плис... Ввести структуру (с полями числитель и знаменатель)для описания понятия рациональное число.Составить и протестировать функции: а)РАВНО (А,В), которая проверяет,равны ли друг другу рациональные числа А,В; б)МАКС (X,N), которая возвращает наибольшее из массива X рациональных чисел; в) СЛОЖ (А,В,С,), которая...
C++ двумерный массив помогите решить задачки плиз!!!!! №1. Дана матрица размера M x N (M-четное число).Поменять местами верхнюю и нижнюю половины матрицы. №2. Дана матрица размера M x N(N-четное число).Поменять местами верхнюю и нижнюю половины матрицы. №3.Описать функцию IsSquare(K)логического типа,возвращающую True,если целый параметр K (>0) является квадратом некоторого целого числа,и False в противном... подробнее

Показать сообщение отдельно
outoftime
║XLR8║
509 / 431 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
01.01.2010, 14:05  [ТС]
Вот мой код:
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
#include <stdio.h>
#include <stdlib.h>
 
int R(int** a, int n)
{
    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];
        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;
    }
    return 1;
}
 
int main()
{
    int n;
    scanf("%d", &n);
    int** a = (int**) malloc(n * sizeof(int*));
    for (int i = 0; i < n; ++i)
        a[i] = (int*) malloc(n * sizeof(int*));
    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");
    return 0;
}
но не смотря на то что писал я сам, только раз подглянул, когда провтыкал преобразованые в инт** делать, я все еще не понимаю принцыпа обращения элементам масива, а именно когда мы выделяем память под масив указателей все ясно выделяется место под "эн" элементов, но почему к ним можно обращаться как к элемнтам масива? похожая ситуация: int a = n; int b(n); ведь оба эти обьявления верны и мало того b == a, с указателями также эсть какая-то фишка с индексами, верно?
если есть можете просветить, просьба на одномерном масиве, что-бы легче понимать было

Добавлено через 15 минут
и еще по sizeof(int*); получается мы выделяем память под интовый указатель, но ведь размер памяти, необходимые для указателя меньший за размер инта, для этого в принцыпе и служать указатели, верно?
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru