Другие языки программирования и технологии
Помогите пожалуйста, решить задачу на двумерный массив, с++. Спасибо.
Задана матрица D(4,4). Определить максимальный среди положительных, минимальный среди отрицательных и поменять их местами.
В чем именно помочь? На чем застопорился? Если полностью за тебя надо сделать - пиши на почту
#include <iostream>
#include <iomanip>
using namespace std;
void print(int*, int*, const size_t, streamsize = 5);
int* max_element(int*, int*, const size_t);
int* min_element(int*, int*, const size_t);
void uswap(int*, int*);
int main() {
const size_t rank = 4;
int matrix[rank][rank] = { { 5, 7, -2, 4 }, { 12, 3, -7, 4 }, { 11, -14, 2, 6 }, { 4, -1, 15, 3 } };
int* head = &matrix[0][0];
int* last = &matrix[rank - 1][rank - 1];
print(head, last, rank);
uswap(max_element(head, last, rank), min_element(head, last, rank));
print(head, last, rank);
cin.get();
}
void uswap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
int* max_element(int* head, int* last, const size_t rank) {
int max_value = *head;
int* address = &max_value;
int* beg = head;
while (++beg <= last) {
if (*beg > max_value) {
max_value = *beg;
address = beg;
}
}
return address;
}
int* min_element(int* head, int* last, const size_t rank) {
int min_value = *head;
int* address = &min_value;
int* beg = head;
while (++beg <= last) {
if (*beg < min_value) {
min_value = *beg;
address = beg;
}
}
return address;
}
void print(int* head, int* last, const size_t rank, streamsize width) {
int* beg = head;
size_t i = 0;
do {
cout << setw(width) << *beg;
if (0 == ++i % rank) cout << '\n';
} while (++beg <= last);
cout << '\n';
}
#include <iomanip>
using namespace std;
void print(int*, int*, const size_t, streamsize = 5);
int* max_element(int*, int*, const size_t);
int* min_element(int*, int*, const size_t);
void uswap(int*, int*);
int main() {
const size_t rank = 4;
int matrix[rank][rank] = { { 5, 7, -2, 4 }, { 12, 3, -7, 4 }, { 11, -14, 2, 6 }, { 4, -1, 15, 3 } };
int* head = &matrix[0][0];
int* last = &matrix[rank - 1][rank - 1];
print(head, last, rank);
uswap(max_element(head, last, rank), min_element(head, last, rank));
print(head, last, rank);
cin.get();
}
void uswap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
int* max_element(int* head, int* last, const size_t rank) {
int max_value = *head;
int* address = &max_value;
int* beg = head;
while (++beg <= last) {
if (*beg > max_value) {
max_value = *beg;
address = beg;
}
}
return address;
}
int* min_element(int* head, int* last, const size_t rank) {
int min_value = *head;
int* address = &min_value;
int* beg = head;
while (++beg <= last) {
if (*beg < min_value) {
min_value = *beg;
address = beg;
}
}
return address;
}
void print(int* head, int* last, const size_t rank, streamsize width) {
int* beg = head;
size_t i = 0;
do {
cout << setw(width) << *beg;
if (0 == ++i % rank) cout << '\n';
} while (++beg <= last);
cout << '\n';
}
#include "iostream"
#include "iomanip"
using namespace std;
int main(){
const int n=4,m=4; int k1=0,k2=0; float t,d[n][m],*b=&**d;
for(int i=0;i<n;i++){
cout<<"Enter "<<m<<" elements of line "<<i+1<<": "; for(int j=0;j>d[i][j];} cout<< endl;
for(int i=0;i< n;i++){for(int j=0;j< m;j++)cout<<setw(8)<< d[i][j]; cout<< endl;}
for(int i=0;i< n*m;i++){if(b[i]>=0 && b[i]>b[k1])k1=i; if(b[i]< 0 && b[i]< b[k2])k2=i;}
t=b[k1]; b[k1]=b[k2]; b[k2]=t; cout<< endl; for(int i=0;i< n;i++){for(int j=0;j< m;j++)cout<<setw(8)<< d[i][j]; cout<< endl;}
cout<< endl; cin.get(); cin.get();}
#include "iomanip"
using namespace std;
int main(){
const int n=4,m=4; int k1=0,k2=0; float t,d[n][m],*b=&**d;
for(int i=0;i<n;i++){
cout<<"Enter "<<m<<" elements of line "<<i+1<<": "; for(int j=0;j>d[i][j];} cout<< endl;
for(int i=0;i< n;i++){for(int j=0;j< m;j++)cout<<setw(8)<< d[i][j]; cout<< endl;}
for(int i=0;i< n*m;i++){if(b[i]>=0 && b[i]>b[k1])k1=i; if(b[i]< 0 && b[i]< b[k2])k2=i;}
t=b[k1]; b[k1]=b[k2]; b[k2]=t; cout<< endl; for(int i=0;i< n;i++){for(int j=0;j< m;j++)cout<<setw(8)<< d[i][j]; cout<< endl;}
cout<< endl; cin.get(); cin.get();}
Похожие вопросы
- Помогите,пожалуйста,решить задачу на двумерные массивы,в паскале.(задача вн.)Спасибо.
- Помогите решить задачу pascal. Двумерные массивы (подробно)
- Помогите пожалуйста решить задачи по информатике, одномерные массивы. Си шарп. Очень срочно. Пожалуйста!!!!
- Помогите написать решение задачи на Двумерный массив ( Borland С++)
- Помогите, пожалуйста, решить задачу по С++, тема "Массивы".
- помогите пожалуйста решить задачу по работе компьютера!
- Помогите пожалуйста решить задачу по программированию. В чем я ошибаюсь?
- Помогите,пожалуйста,решить задачу в Паскале.
- Pascal. Помогите пожалуйста решить задачу в паскале !
- Помогите пожалуйста решить задачи по программированию. P.S: задачи по паскалю.
#pragma hdrstop
#include
#include
#include
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
int d[5][5];
for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
d[i][j]=random(20)-9;
cout<<d[i][j]<<" ";
}
cout<<endl;
}
int imax,jmax,imin,jmin,max,min;
for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
if ((d[i][j]>0) && (max<d[i][j]))
{
max = d[i][j];
imax = i;
jmax = j;
}
else if (d[i][j]<=0 && min<d[i][j])
{
min = d[i][j];
imin = i;
jmin = j;
}
}
}
cout<<"max = "<<d[imax][jmax]<<endl;
cout<<"min = "<<d[imin][jmin]<<endl;
int temp;
temp = d[imax][jmax];
d[imax][jmax] = d[imin][jmin];
d[imin][jmin] = temp;
cout<<endl;
getch();
return 0;
}