Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Программа на C++ Помогите, очень надо! (http://www.tehnari.ru/f41/t26039/)

Sidxoi 05.07.2009 03:23

Программа на C++ Помогите, очень надо!
 
Надо написать программу на С++, а я в нем не бум-бум=(((( помогите пожалуйста, очень надо. из института из-за этой программы не хочется вылетать.
Задача:
Дана действительная квадратная матрица порядка 2n. Получить новую матрицу, переставляя её блоки размера nxn. крест на крест.
Я понимаю, что программа простая, но пожалуйста помогите.

ramsujot 12.07.2009 00:06

Не помню точно, эта или или нет, давно писал, надеюсь поможет.
//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[i][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[i][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[i][q]<arr[i][q-1])
{
int tmp=arr[i][q];
arr[i][q]=arr[i][q-1];
arr[i][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;
}

pcbag 27.07.2009 13:58

arr[] - а разве не будет ругатся на отсутствие индекса масива?

csbwalker 20.08.2009 22:09

Цитата:

Сообщение от pcbag (Сообщение 223693)
arr[] - а разве не будет ругатся на отсутствие индекса масива?

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

#include <string.h>

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

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

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


Часовой пояс GMT +4, время: 20:46.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.