Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2009, 14:44   #1
tomsoier
Новичок
Джуниор
 
Регистрация: 12.12.2009
Сообщений: 1
По умолчанию Вывод элементов матрицы

Необходимо вывести элементы квадратной матрицы (от 2 до 7 порядка) следующим способом
пример:
дана матрица
1 2 3
4 5 6
7 8 9

вывести 7 4 8 9 5 1 2 6 3
т.е выводить элементы диагонали каждый раз в разном направлении начиная с нижнего левого угла (чётные сверху вниз, нечётные - снизу вверх)

помогите найти ошибку, голову сломал!
Код:
#include <stdio.h>
#include <stdlib.h>

int main()
{
int a,b,i,j,n,p,k,x,e;
printf("Vvedite razmer ");
scanf("%d",&n);
int A[n][n];
int B[n];
for(i=0;i<n;i++) {
    for(j=0;j<n;j++)
    {
        printf("vvedite element ");
        scanf("%d",&p);
        A[i][j]=p;
    }
}
for (i=0;i<n;i++)
    {
        for (j=0;j<n;j++)
            printf("%d    ",A[i][j]);
            printf("\n\n");
    }
for (k=1;k=2*n-1;k++) {
   if (k<=n) {
       if (k%2) {
           e=1;
           for(i=n-k+1;i=n;i++)
           j=e;
           printf("%d",A[i][j]);
           e=e++;
       }
       else {
           e=1;
           for(i=n;i==n-k+1;i--){
               j=k-e+1;
               printf("%d",A[i][j]);
               e=e++;
           }
       }
   }
   else {
       if (k%2) {
           e=1;
           for (i=e;i=2*n-k;i--) {
               j=k-n+e;
               printf("%d",A[i][j]);
               e=e++;
           }
       }
       else {
           e=2*n-1;
           for(j=n;j=k-n+1;j--) {
               j=e;
               printf("%d",A[i][j]);
               e=e--;
           }
       }
   }
}
}
tomsoier вне форума Ответить с цитированием
Старый 13.12.2009, 15:13   #2
RoS
Форумчанин
 
Аватар для RoS
 
Регистрация: 13.12.2009
Сообщений: 272
По умолчанию

Я не буду сейчас разбираться в твоем коде, но попробую подсказать:
Пусть MAX - размерность матрицы, тогда твоя логика такова -
i и j у тебя на нижнем углу матрицы
начинаешь с j - првоеряешь ,если i равно MAX-1 то прибавляешь к j единицу, выводишь, потом с каждой итерацией отнимаешь от j единицу, а к i прибавляешь, пока j не станет 0 - тогда J не трогаешь а просто прибавляешь к i единицу, выводишь, потом начинает уже к j прибавлять а от i отнимать....
В описании могут быть недочеты только для старта аглоритма, там нужно будет еще какие- нибудь условия поставить
Если я помог вам - порадуйте меня, нажмите на весы слева
RoS вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сумма четных элементов матрицы. Произведение элементов 3-го столбца. Минимальный элемент матрицы. renovare Помощь студентам 2 03.07.2009 21:13
Вывод элементов матрицы в определенном порядке Dayterius Паскаль, Turbo Pascal, PascalABC.NET 1 20.05.2009 12:13
Найти максимальный из положительных элементов матрицы и сумму отрицательных элементов. bessonov12 Microsoft Office Excel 7 04.05.2009 05:44
количество элементов матрицы, больших среднего арифмитического всех её элементов finch Помощь студентам 3 27.08.2007 15:48