|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
![]() |
|
Опции темы | Опции просмотра |
![]() |
#1 (permalink) |
Новичок
Регистрация: 08.01.2017
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
![]() Из матрицы A сформировать матрицу B, отсортировав по убыванию все элементы матрицы A и располагая их в матрице B по спирали, начиная с максимального элемента b11. Помогите написать программу, пожалуйста:3 (исключительно на Си, препод по другому не желает:с) |
![]() |
![]() |
![]() |
|
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Ранее созданные обсуждения должны помочь вам Двумерные массивы Двумерные массивы Двумерные массивы Двумерные массивы Двумерные массивы |
![]() |
#2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
![]()
А в чем основные проблемы - в языке или в алгоритме? Дело в том, что я на СИ не пишу, но могу попытаться нарисовать на Паскале. Если Вы владеете языками программирования, то переведете без труда, а если нет, то, извините, - увы!
|
![]() |
![]() |
![]() |
#4 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
![]() Цитата:
Я уж тут и ненавистную СИ-шную нумерацию с 0 применил (дико неудобно, когда работаешь с матрицами). Как-то так: Код:
Const M=8; N=10; Var A:Array[0..M-1,0..N-1] of Integer; B:Array[0..M*N-1] of Integer; i,j,k,p,D:Integer; Begin Randomize; for i:=0 to M-1 do begin for j:=0 to N-1 do begin A[i,j]:=Random(100); write(A[i,j]:4); B[i*N+j]:=A[i,j]; end; writeln; end; writeln; writeln; for i:=0 to M*N-2 do for j:=0 to M*N-2-i do if B[j]<B[j+1] then begin D:=B[j]; B[j]:=B[j+1]; B[j+1]:=D; end; p:=-1; k:=-1; While p<=M*N-1 do begin k:=k+1; i:=k; for j:=k to N-2-k do begin p:=p+1; if p<=M*N-1 then A[i,j]:=B[p]; end; j:=N-1-k; for i:=k to M-2-k do begin p:=p+1; if p<=M*N-1 then A[i,j]:=B[p]; end; i:=M-1-k; for j:=N-1-k downto k+1 do begin p:=p+1; if p<=M*N-1 then A[i,j]:=B[p]; end; j:=k; for i:=M-1-k downto k+1 do begin p:=p+1; if p<=M*N-1 then A[i,j]:=B[p]; end; end; for i:=0 to M-1 do begin for j:=0 to N-1 do write(A[i,j]:4); writeln; end; Readln End. |
|
![]() |
![]() |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
![]() |
Метки |
помогите плес, язык c, язык си |
Опции темы | |
Опции просмотра | |
|
|