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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2011, 23:36   #1
subbass
Новичок
Джуниор
 
Регистрация: 24.05.2011
Сообщений: 2
По умолчанию Двумерный массив.

Вот собственно задание:
Для заданного преподавателем варианта задания составьте программу, которая
выводит на экран квадратную матрицу A размером n × n . Входные данные: n – порядок
матрицы. Значение n вводится с клавиатуры, является нечетным целым числом в
диапазоне 2 < n < 24 . Выходные данные: матрица A – двумерный целочисленный массив.
Значения элементов матрицы A выводятся на экран монитора с выравниванием столбцов по младшему разряду.
Вот так должна выглядеть матрица.

Я написал код:
Цитата:
#include <stdio.h>
#include <conio.h>

void main()
{
int n,h=0,a=1,q;
do
{
printf("Vvedite ne4etnii por9dok matrici n ot 3 do 23:\n");
scanf("%d",&n);
}while((n%2==0)||(n<3)||(n>23));
int mass[23][23];
for(int I=n-1;I>=0;I--)
{
q=(-h);
for(int i=0;i<n;i++)
{
mass[i][I]=0;
if((I>=n/2)&&(i==((n/2)+q)))
{
mass[i][I]=a;
if (q<h) q++;
a++;
}
}
if(i>=n/2)h++;
}
for(int i=0;i<n;i++)
{
for(int I=0;I<n;I++)
{
printf("%d",mass[i][I]);
if(mass[i][I]>9) printf(" ");
else printf(" ");
}
printf("\n");
}
printf ("Press any key for exit\n");
getch();
}
и вот как выглядит матрица:

не знаю как привести её к нужному виду, подскажите алгоритм, а еще лучше исправьте если вам не трудно, пожалуйста...
P.S. я понимаю что дело в условии if((I>=n/2)&&(i==((n/2)+q))), его надо изменить и еще переменные относящиеся к этому условию, но вот как?(

Последний раз редактировалось subbass; 24.05.2011 в 23:51. Причина: ...
subbass вне форума Ответить с цитированием
Старый 25.05.2011, 11:27   #2
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Код:
#include <iostream>

using namespace std;

void showArray(int **Array, int dim);

int main()
{
    int dim = 0;
    while (dim < 3 || dim > 23 || !(dim % 2))
    {
        cout << "Введите размерность матрицы (нечетное число от 3 до 23):\n";
        cin >> dim;
    }

    // Объявление матрицы
    int **Array = new int *[dim];
    for (int i = 0; i < dim; i++)
        Array[i] = new int[dim];

    // Заполняем матрицу нулями
    for (int i = 0; i < dim; i++)
        for (int j = 0; j < dim; j++)
            Array[i][j] = 0;

    // Теперь -- нужными числами
    int number = 1;
    for (int i = dim - 1; i >= dim / 2; i--)
        for (int j = dim - i - 1; j <= i; j++)
            Array[j][i] = number++;

    cout << "Полученная матрица:\n";
    showArray(Array, dim);


    // Освобождение памяти
    for(int i = 0; i < dim; i++)
        delete[] Array[i];
    delete[] Array;

    return 0;
}


void showArray(int **Array, int dim)
{
    for (int i = 0; i < dim; i++)
    {
        for (int j = 0; j < dim; j++)
            cout << Array[i][j] << "\t";
        cout << endl;
    }
    cout << endl;
}
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Старый 25.05.2011, 18:29   #3
subbass
Новичок
Джуниор
 
Регистрация: 24.05.2011
Сообщений: 2
По умолчанию

Большое спасибо!!!!
subbass вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив и Двумерный массив eugene1437 Общие вопросы C/C++ 15 25.05.2011 19:17
двумерный массив rammstein99 Помощь студентам 0 28.03.2011 11:55
двумерный массив. Женечка92 Помощь студентам 1 24.04.2010 06:12
Двумерный массив, одномерный массив. Branbal Помощь студентам 14 18.11.2009 12:40
двумерный массив JOHN1992 Помощь студентам 4 15.11.2009 08:51