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

Числа от 1 до 49, выведенные по спирали квадратной матрицы (Указатели) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Исчисление сумм и произведений (непростая задачка) http://www.cyberforum.ru/cpp-beginners/thread511934.html
Вычислить и вывести значения соответствующих переменных: L=П (Сверху n, снизу i=3) (2i^2+3)/(3i-7)! - E (сверху n, снизу i=3) (i!+1)/2i+3); где n=7 Вот и вся задачка.. тяжелая потому что есть...
C++ в visual studio 2010 вазможно писать армянскими буквами ? пример --MessageBox("арм.буквы",MB_OK) ,компилятор пишет что нужно изменить unicode. какой unicode я не ицпользовал не получается,вместо букв пишет "????". А в хазваниах кнопок,статических... http://www.cyberforum.ru/cpp-beginners/thread511930.html
C++ В последовательности X1, . . ., Xn все члены, меньшие двух, заменить нулями
Даны натуральное число п, действительные числа X1 ..., Xn. В последовательности X1, . . ., Xn все члены, меньшие двух, заменить нулями. Кроме того, получить сумму членов, принадлежащих отрезку , а...
C++ Получить сумму тех чисел данной последовательности, которые кратны 5
'Даны целые числа A1, ..., A50. Получить сумму тех чисел данной последовательности, которые а) кратны 5; б) нечетны и отрицательны; в) удовлетворяют условию |Ai|<i^2. Буду очень...
C++ Запись и чтение комплексных чисел http://www.cyberforum.ru/cpp-beginners/thread511914.html
Здравствуйте, участники форума! Помогите, пожалуйста, с прогой:) Нужно определить две функции: void WriteComplex(char * fname, Complex * buffer, int count); – функция записывает count...
C++ Как присоединять ресурсы? Есть некоторый массив данных довольно большого размера, чтобы превращать его в числа и писать прямо в коде инициализацию массива. Приходится при каждом запуске загружать данные из отдельного файла.... подробнее

Показать сообщение отдельно
kristina-lonsh
0 / 0 / 0
Регистрация: 04.03.2012
Сообщений: 61

Числа от 1 до 49, выведенные по спирали квадратной матрицы (Указатели) - C++

04.03.2012, 12:01. Просмотров 708. Ответов 0
Метки (Все метки)

Задача звучит так: Получить целочисленную квадратную матрицу порядка 7, элементами которой являются числа 1,2,...,49, расположенные в ней по спирали. Работа с матрицей производится при помощи указателей. Я делала как то так, но попала в тупик... выводит всякую ерунду, не могу найти закономерность элементов, расположенных по спирали.. Текст моей проги ниже.

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
#include<stdlib.h>
#include<stdio.h>
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{const int n=7;
int k=0;
int **ukaz;
int i,j;
ukaz=(int**)calloc(n,sizeof(int*));
for (int i=0;i<n;i++)
    *(ukaz+i)=(int*)calloc(n,sizeof(int));
 
 
for (i=0;i<n;i++)
    {for (j=0;j<n;j++)
        {*(*(ukaz+i)+j)=++k;
        cout<<setw(3)<<*(*(ukaz+i)+j);
        }
        cout<<endl;
    }
cout<<endl;
 
k=0;
for (int j = 0, m = n; j <= m; j ++, m --){
                for (int i = j; i < m; i ++){
                        *(*(ukaz+j)+i)=++k;
                        cout<<setw(3)<<*(*(ukaz+i)+j);
                }
                for (int i = j + 1; i < m; i ++){
                         *(*(ukaz+i)+(n-j-1))=++k;
                         cout<<*(*(ukaz+i)+(n-j-1));
                }
                for (int i = j + 1; i < m; i ++){
                         *(*(ukaz+i)+(n-j-1))=++k;
                        cout<<*(*(ukaz+(n-j-1))+(n-i-1));
                }
                for (int i = j + 1; i < m - 1; i ++){
                         *(*(ukaz+i)+(n-j-1))=++k;
                         cout<<*(*(ukaz+(n-i-1))+j);
                }
        }
cout<<endl;
for (i=0;i<n;i++)
    {for (j=0;j<n;j++)
        {cout<<setw(3)<<*(*(ukaz+i)+j);
        }
        cout<<endl;
    }
for(i=0;i<n;i++)
    free(*(ukaz+i));
free(ukaz);
system("pause");
system("cls");
}
 Комментарий модератора 
Используйте теги форматирования кода!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru