• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Программа на C++ Помогите, очень надо!

  • Автор темы Автор темы Sidxoi
  • Дата начала Дата начала

Sidxoi

Ученик
Регистрация
5 Июл 2009
Сообщения
2
Реакции
0
Баллы
0
Программа на C++ Помогите, очень надо!

Надо написать программу на С++, а я в нем не бум-бум=(((( помогите пожалуйста, очень надо. из института из-за этой программы не хочется вылетать.
Задача:
Дана действительная квадратная матрица порядка 2n. Получить новую матрицу, переставляя её блоки размера nxn. крест на крест.
Я понимаю, что программа простая, но пожалуйста помогите.
 
Не помню точно, эта или или нет, давно писал, надеюсь поможет.
//2. Сортування матриці
void FillMat(int arr[][5], int row, int col)
{
for(int i=0; i<row; i++)
{
for(int j=0; j<col; j++)
{
arr[j]=rand()%50;
}
}
}
void PrintMat(int arr[][5], int row, int col)
{
for(int i=0; i<row; i++)
{
for(int j=0; j<col; j++)
{
cout<<arr[j]<<"\t";
}
cout<<endl;
}

}
void SortMat(int arr[][5], int row, int col)
{
for (int i=0;i<row;i++)
{
for (int j=0;j<col-1;j++)
{

bool flag=false;
for (int q=col-1;q>j;q--)
{
if (arr[q]<arr[q-1])
{
int tmp=arr[q];
arr[q]=arr[q-1];
arr[q-1]=tmp;
flag=true;
}
}
if (flag=false)
{
break;
}

}
}
}
void main ()
{
srand (time(0));
int const row=5;
int const col=5;
int arr[row][col];
FillMat(arr, row, col);
PrintMat(arr, row, col);
cout<<endl;
SortMat(arr, row, col);
PrintMat(arr, row, col);
cout<<endl;
}
 
arr[] - а разве не будет ругатся на отсутствие индекса масива?
 
arr[] - а разве не будет ругатся на отсутствие индекса масива?

Вообще от компилятора конечно зависит, но в целом не должно - данных компилятору хватает, срабатывает же такой кусок
Код:
#include <string.h>

int func(char a[])
{
   return strlen(a);
}

int main()
{
char arr[80];
   arr[0] = '\0';
   return func(arr);
}

Да и, в принципе, если бы не срабатывало - было бы ошибкой компилятора, т.к. более чем часто невозможно заранее сказать каков будет размер массива, передаваемого функции.
Хотя конкретно в этом случае можно было бы написать и конкретное значение - т.к. используется только 5, правда это сказалось бы если бы захотелось эту 5 изменить в дальнейшем.
 
Последнее редактирование:
Назад
Сверху