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

Матрица-спираль - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.94
eddilou
3 / 3 / 0
Регистрация: 21.11.2010
Сообщений: 194
14.03.2011, 19:05     Матрица-спираль #1
всем привет
дано такое задание
Написать и протестировать функцию MtrSpiral(n), формирующую квадратную матри-цу n*n вида
1 1 1 … 1 1 2
4 5 5 … 5 6 2
4 8 9 … 10 6 2
… … … … … … …
4 8 12 … 11 6 2
4 8 7 … 7 7 2
4 3 3 … 3 3 3

вот мой код
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 <conio.h>
#include <stdlib.h>
 
int **MtrSpiral(int n)
{
 int **arr;
 int i, j;
 arr=(int**)malloc(n*sizeof(int*));
 for(i=0; i<n; i++)
 {arr[i]=(int*)malloc(n*sizeof(int));
  for(j=0; j<n; j++)
  {arr[i][j]=random(25)+1;}
  }
 return (arr);
}
void MtrPrintf(int **arr, int n)
{
 for(int i=0; i<n; i++)
 {for (int j=0; j<n; j++)
  {
   printf("%4d", arr[i][j]);
  }
 printf("\n");
 }
}
 
void main()
{
do{
 clrscr();
 int n;
 int **arr;
 printf("vvedite razmer matrici \nn=");
 scanf("%d",&n);
 arr=MtrSpiral(n);
 printf("Programma napechataet matricu n*n spiralniuy\n");
 MtrPrintf(arr, n);
 printf("\nPovtorit li? yes/no (Anykey/ESC)");
 }
 while(getche()!=27);
}
я не знаю каким образом сделать так чтоб матрица была спиральная как в задании... помогите плиз.. мне интересно самому как так сделать понять и разобраться

Добавлено через 21 минуту
разве никто не знает как сделать???..
хотя бы алгоритм ..
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2011, 19:05     Матрица-спираль
Посмотрите здесь:

Логарифмическая спираль C++
Спираль-Перевод(ОТЛАДКА) C++
C++ Спираль Улама C++
C++ Рекурсия c ++ Спираль!
C++ спираль архимеда
C++ Задачка, в c++, спираль архимеда
Спираль Улама C++
Построить гиперболическую спираль C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IrineK
Заблокирован
15.03.2011, 20:20     Матрица-спираль #2
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
#include <stdio.h>
#include <conio.h>
#define N 12
 
int main()
{   int spiral[N][N];
    int i,j,k, edge, num = 0;
    for(k=0; k<N/2;k++) //слои
    {   edge = N-1-k;
        num++;
        for(j=k;j<edge;j++)     
            spiral[k][j]=num;
        num++;
        for(i=k;i<edge;i++)     
            spiral[i][edge]=num;
        num++;
        for(j=edge;j>=k;j--)    
            spiral[edge][j]=num;
        num++;
        for(i=edge;i>k;i--)     
            spiral[i][k]=num;
    }
    
    if(N%2) //если N-нечетное дополнить центральным элементом
    {   num++;
        spiral[N/2][N/2]=num;
    }
 
    for(i=0;i<N;i++)
    {   for(j=0;j<N;j++) printf("%6d",spiral[i][j]);
        printf("\n");
    }
 
    getch();
    return 0;
}
Yandex
Объявления
15.03.2011, 20:20     Матрица-спираль
Ответ Создать тему
Опции темы

Текущее время: 18:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru