Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Задачка на С++ / 10 сообщений из 10, страница 1 из 1
11.05.2007, 00:10
    #34517798
MusicMan_67
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачка на С++
Помогите решить задачу, вернее перевести её с VC++ на TurboC++. Дело в том, что в турбо нет таких библиотек как в вижуале. Незнаю как переназначить переменные...


#include <iostream>
#include <iomanip>
#include <ctime>
using namespace std;
int** DelRow(int **m, int &row, int col, int index);
int** DelCol(int **m, int row, int &col, int index);
void print(int **m,int row,int col);
int _tmain(int argc, _TCHAR* argv[])
{
srand(time(0));
int row,col;
cout<<"Enter row"<<endl;
cin>>row;
cout<<"Enter column"<<endl;
cin>>col;
int **mass = new int *[row];
for(int i = 0;i<row;++i){
mass = new int[col];
for(int j = 0;j<col;++j)
mass[j] = rand() % 100;
}
system("cls");
print(mass,row,col);
int index_row,index_col;
int MAX = mass[0][0];
for(int i = 0;i<row;++i){
for(int j = 0;j<col;++j){
if(mass[j]>MAX){
MAX = mass[j];
index_row = i;index_col = j;
}
}
}
cout<<"Maximum is : "<<MAX<<endl;
cout<<"Row is : "<<index_row<<endl;
cout<<"Column is : "<<index_col<<endl;
mass = DelRow(mass, row, col, index_row);
mass = DelCol(mass, row, col, index_col);
print(mass,row,col);
for(i=0;i<row;i++)
delete[] mass;
delete[] mass;
return 0;
}
int** DelRow(int **m, int &row, int col, int index){

int **temp = new int*[--row];
for(int i=0;i<row+1;i++){
if(i < index) temp = m;
else if(i > index) temp[i-1] = m;
else delete[] m;
}
delete[] m;
return temp;
}
int** DelCol(int **m, int row, int &col, int index){
col--;
int **temp = new int*[row];
for(int i=0;i<row;i++){
temp = new int[col];
for(int j=0;j<col+1;j++){
if(j < index) temp[j] = m[j];
if(j > index) temp[j-1] = m[j];
}
}
for(i=0;i<row;i++) delete[] m;
delete[] m;
return temp;
}
void print(int **m,int row,int col){
cout<<endl;
for(int i=0;i<row;i++){
for(int j=0;j<col;j++)
cout<<setw(5)<<m[j];
cout<<"\n\n";
}
}

Спасибо заранее тем, кто поможет! Сам ещё плохо разбираюсь в С++, но вот для курсовой необходимо решить эту задачу. Надеюсь поможете, не откажете :)
...
Рейтинг: 0 / 0
11.05.2007, 00:15
    #34517801
MusicMan_67
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачка на С++
А сама задачка то вот она: Дана произвольная квадратная матрица. Удалить из неё строку и столбец на пересечении которой находится максимальный элемент данной диагонали.


Пример:
существует массив
1 2 3
4 5 6
7 8 9

Максимальный элемент - 9, удаляем строку 3 и столб 3.


Помогите плиз.
...
Рейтинг: 0 / 0
11.05.2007, 09:01
    #34518005
Borr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачка на С++
Смотри сюда

Потоим перебери массив найди max типа
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
int max = mas[ 0 ][ 0 ], row, col;
for(int i=  1 ; i<=r; i++)//Кол-во колонок
 for(int t= 1 ; t<=k; t++ )//строк
  if(max<mas[i][t])
   {
     max = mas[i][t]
     col = i;
     row = t;
   }
И удаляй элементы col и row ты знаешь какие (это на любом компиляторе C++ должно сработать).
...
Рейтинг: 0 / 0
11.05.2007, 09:33
    #34518066
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачка на С++
MusicMan_67Помогите решить задачу, вернее перевести её с VC++ на TurboC++. Дело в том, что в турбо нет таких библиотек как в вижуале. Незнаю как переназначить переменные...


Какие функции библиотек тебя инетересуют?
...
Рейтинг: 0 / 0
11.05.2007, 14:29
    #34519344
blinded
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачка на С++
Akh MusicMan_67Помогите решить задачу, вернее перевести её с VC++ на TurboC++. Дело в том, что в турбо нет таких библиотек как в вижуале. Незнаю как переназначить переменные...


Какие функции библиотек тебя инетересуют?
А он сам не знает. По крайней мере у него таких заголовочных файлов нет. Вместо них надо написать
# include <iostream.h>
# include<time.h>
using namespace std; - в топку.Ну может еще endl тоже
srand & rand где-нибудь в math.h
A так длжно работать
...
Рейтинг: 0 / 0
11.05.2007, 17:03
    #34520075
kolobok0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачка на С++
MusicMan_67....Дело в том, что в турбо нет таких библиотек как в вижуале. ...

турбо, ышо содержит ошибки (по крайней мере под досиком приходилось править его библиотеки)...
попробуйте например позвать мультиплексное прерывание с использованием не только основных регистров. Вы будете нечаянно удивлены :)


с уважением
(круглый)
...
Рейтинг: 0 / 0
11.05.2007, 23:59
    #34520663
MusicMan_67
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачка на С++
blinded Akh MusicMan_67Помогите решить задачу, вернее перевести её с VC++ на TurboC++. Дело в том, что в турбо нет таких библиотек как в вижуале. Незнаю как переназначить переменные...


Какие функции библиотек тебя инетересуют?
А он сам не знает. По крайней мере у него таких заголовочных файлов нет. Вместо них надо написать
# include <iostream.h>
# include<time.h>
using namespace std; - в топку.Ну может еще endl тоже
srand & rand где-нибудь в math.h
A так длжно работать
Да это само собой переделал. При компилировании затыкается на указании переменной _tmain, т.е. в строчке
int _tmain(int argc, _TCHAR* argv[])

В сообщении об ошибке написано:
Error ..\1.cpp 8: ) expected
Error ..\1.cpp 9: Declaration terminated incorrectly

Начинающему понять весьма сложно.
...
Рейтинг: 0 / 0
12.05.2007, 09:31
    #34520755
blinded
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачка на С++
tmain-> main
TCHAR* argv[] -> const char* argv[]
...
Рейтинг: 0 / 0
16.05.2007, 23:11
    #34530837
MusicMan_67
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачка на С++
Посмотрите, вот я написал программу на половину.
Есть косяки, которые я исправить немогу, незнаю как. Помогите пожалуста.
Вот исходник программы, написанный мной.

#include <stdio.h>
#include <iomanip.h>
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#define IC for (i=0;i<n;i++)
#define JC for (j=0;j<n;j++)

int i,j,n;
int A[100][100];
int Anew[100][100];
void print_matrix(void);

int main(void)
{
cout<<"Vvedite razmernost massiva: "<<ends;
cin>>n;
cout<<"Vvedite "<<n*n<<" elementov massiva:"<<endl;
IC
JC
cin>>A [j];
print_matrix();
return 0;
}


void print_matrix(void)
{
cout<<"Massiv: "<<endl;
cout<<"\n==================="<<endl;
IC
{
JC
cout<<setprecision(4)<<setw(5)<<A[j];
cout<<endl;
}



cout<<"==================="<<endl;

int max;
max=0;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(A[j]>max)
max=A[j];
cout<<"Maximalniy element: "<<max;
int mas = A[0][0],mrow,mcol;
{ IC

JC
if(A[j]>max)
max=A[j];
mrow =i;
mcol =j;
}
cout<<"\nKoordinati max. elementa: ["<<mrow<<"]["<<mcol<<"]";


getch();
}


Вот там где присваиваются значения номер строки и номер столбца переменным mrow и mcol почему то не работают в выводе строки. И помогите дальше дописать, создать новый массив, уже с удалённой строчкой и столбцом.


Условие задачи:
существует двумерный массив. Удалить строку и столбец, на пересечении которых находится максимальный элемент.
Поясню:

1 5 9
6 3 1
2 4 8

Максимальный элемент = 9, значит удаляем строку №1 и столбец №3.

Помогите пожалуста, завтра нужно сдать уже.
...
Рейтинг: 0 / 0
17.05.2007, 10:04
    #34531355
blinded
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачка на С++
Попробуй так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
#include <stdio.h>
#include <iomanip.h>
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>

// Надо сделать чтобы было совсем непонятно

// #define IC for (i=0;i<n;i++)
// #define JC for (j=0;j<n;j++)

int i,j,n;
int A[ 100 ][ 100 ];
int Anew[ 100 ][ 100 ];
void print_matrix(void);

int main(void)
{
	cout<<"Vvedite razmernost massiva: "<<ends;
	cin>>n;
	cout<<"Vvedite "<<n*n<<" elementov massiva:"<<endl;
	for (int i =  0 ; i < n; ++i)
	  for (int j=  0 ; j < n; ++j)
	    cin>>A[i][j];
	print_matrix();
	return  0 ;
}


void print_matrix(void)
{
  cout<<"Massiv: "<<endl;
  cout<<"\n==================="<<endl;
  for (int i =  0 ; i < n; ++i)
  {
    for (int j=  0 ; j < n; ++j)
    cout<< setprecision( 4 ) << setw( 5 ) << A[i][j];
    cout<<endl;
  }
  cout<<"==================="<<endl;
  int mrow = mcol =  0 ;

  for(i= 1 ;i<n;i++)
    for(j= 0 ;j<n;j++)
      if(A[i][j]>A[mrow][mcol])
      {
        mrow = i;
        mcol = j;
      }
  cout<<"Maximalniy element: A[ " << mrow << ", " << mcol << "] = " << A[mrow][mcol];
  int i;
  for (i =  0 ; i < mrow; ++i)
  {
    int j;
    for (j =  0 ; j < mcol; ++j)
      Anew[i][j] = A[i][j];
    for (++j; j < n; ++j)
      Anew[i][j- 1 ] = A[i][j];
  }
  for ( ++i; i < n; ++i)
  {
    int j;
    for (j =  0 ; j < mcol; ++j)
      Anew[i- 1 ][j] = A[i][j];
    for (++j; j < n; ++j)
      Anew[i- 1 ][j- 1 ] = A[i][j];
  }
  for (int i =  0 ; i < n- 1 ; ++i)
  {
    for (int j=  0 ; j < n- 1 ; ++j)
    cout<< setprecision( 4 ) << setw( 5 ) << Anew[i][j];
    cout<<endl;
  }
  getch();
}
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Задачка на С++ / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]