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

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

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

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

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

04.03.2012, 12:01. Просмотров 667. Ответов 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");
}
 Комментарий модератора 
Используйте теги форматирования кода!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 03:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru