Форум Gatchina OnLine

Форум Gatchina OnLine (https://forumgol.ru/index.php)
-   Программирование и разработка (https://forumgol.ru/forumdisplay.php?f=4)
-   -   Язык программирования С (https://forumgol.ru/showthread.php?t=8245)

Tommy 05.10.2008 12:58

Язык программирования С
 
Народ кто нибудь шарит в этом??помогите плииз
"В двумерном N * K массиве целых чисел поменять местами строку, содержащую минимальный элемент массива, со строкой, содержащей максимальный элемент массива"

Insya 05.10.2008 20:17

могла налажать в синтаксисе, т к на вижуалке на с++ писала

#include "stdafx.h"

int N=4;
int K=3;
int m[4][3]={{5,3,4},{8,1,3},{7,0,4},{9,5,7}};


void FindMinMax(int a[][3], int &imin, int &imax)
{
int jmax=0;
int jmin=0;
int i;
int j;
for (i = 0; i < N; i++)
{
for(j=0; j<K; j++)
{
if (a[imax][jmax] < a[i][j])
{
imax = i;
jmax=j;
}
if (a[imin][jmin] > a[i][j])
{
imin = i;
jmin=j;
}
}
}
}
void main()
{
int imin=0;
int imax=0;
int temp[3];
int i;
int j;
FindMinMax(m, imin, imax);
for(i=0; i<3; i++)
{
temp[i]=m[imin][i];
m[imin][i]=m[imax][i];
m[imax][i]=temp[i];
}

for(i=0;i<4;i++)
{
for(j=0;j<3;j++)
{
printf("%d", m[i][j]);
}
printf("\r\n");
}
}

TNT 05.10.2008 20:34

а чего в stdafx.h вообще?
P.S. Tommy, ты тоже из техникума? :)

Tommy 05.10.2008 20:50

Цитата:

Сообщение от TNT (Сообщение 332200)
а чего в stdafx.h вообще?
P.S. Tommy, ты тоже из техникума? :)

Ну типа того...гуап:)

Kostyan 05.10.2008 20:52

Цитата:

Сообщение от Tommy (Сообщение 332162)
Народ кто нибудь шарит в этом??помогите плииз
"В двумерном N * K массиве целых чисел поменять местами строку, содержащую минимальный элемент массива, со строкой, содержащей максимальный элемент массива"

потести, а то я не успел, может баги где есть...
Код:

#include <iostream>

using namespace std;

const int n=4;//кол-во строк
const int k=2;//кол-во столбцов

void masprint(int** massive)//функция вывода массива
{
    for (int i=0; i<n; i++)
        {
            for (int j=0; j<k; j++)
                cout<<massive[i][j]<<" ";
        cout<<'\n';
        };
};

int** replacemaxmin(int** a)//функция замены строк
{
    int max=a[0][0];
    int min=a[0][0];
    int nmax=0;//номер строки с наибольшим
    int nmin=0;//номер строки с наименьшим
    for (int i=0; i<n; i++)
        for (int j=0; j<k; j++)
        {
            if (a[i][j]>max)//сравниваем с макс
            {
                max=a[i][j];//новый максимум
                nmax=i;//текущая строка с мин эл-ои
            };
            if (a[i][j]<min)//сравниваем с мин
            {
                min=a[i][j];//новый минимум
                nmin=i;//текущая строка с мин эл-ом
            };
        };
    int tmp=0;
    for (int j=0; j<k; j++)//меняем строки местами
    {
        tmp=a[nmax][j];
        a[nmax][j]=a[nmin][j];
        a[nmin][j]=tmp;
    };
    return a;
};

int main()
{
    int** mas=new int*[n];//динамически создаём массив
    for (int i=0; i<n; i++)
        mas[i]=new int[k];
    for(int i=0; i<n; i++)//заполняем массив
    for(int j=0; j<k; j++)
      {
          cout<<"Enter element x"<<'['<<i<<"]["<<j<<"]: \n";
          cin>>mas[i][j];
      };
    masprint(mas);//выводим исходный массив
    cout<<'\n';
    mas=replacemaxmin(mas);//обрабатываем массив
    masprint(mas);//выводим конечный массив
    return 0;
}


Insya 05.10.2008 21:36

Цитата:

Сообщение от TNT (Сообщение 332200)
а чего в stdafx.h вообще?
P.S. Tommy, ты тоже из техникума? :)

стандартная библиотека, в которую входят основные библиотеки

Insya 05.10.2008 21:38

Цитата:

Сообщение от Kostyan (Сообщение 332203)
потести, а то я не успел, может баги где есть...

он же сказал, что ему на c надо, на с такие конструкции не прокатят, даже "for(int i=0.." он не поймет

Kostyan 05.10.2008 21:57

Цитата:

Сообщение от Insya (Сообщение 332207)
он же сказал, что ему на c надо, на с такие конструкции не прокатят, даже "for(int i=0.." он не поймет

тьфу ты! ну если неожиданно понадобиться вариант на c++, то вот пожалуйста:)) насколько я знаю в гуапе вроде у всех изучение начинается с паскаля или с++. может он опечатался?:)

kainen 05.10.2008 22:02

Цитата:

Сообщение от Insya (Сообщение 332195)
могла налажать в синтаксисе, т к на вижуалке на с++ писала

#include "stdafx.h"

int N=4;
int K=3;
int m[4][3]={{5,3,4},{8,1,3},{7,0,4},{9,5,7}};


void FindMinMax(int a[][3], int &imin, int &imax)
{
int jmax=0;
int jmin=0;
int i;
int j;
for (i = 0; i < N; i++)
{
for(j=0; j<K; j++)
{
if (a[imax][jmax] < a[i][j])
{
imax = i;
jmax=j;
}
if (a[imin][jmin] > a[i][j])
{
imin = i;
jmin=j;
}
}
}
}
void main()
{
int imin=0;
int imax=0;
int temp[3];
int i;
int j;
FindMinMax(m, imin, imax);
for(i=0; i<3; i++)
{
temp[i]=m[imin][i];
m[imin][i]=m[imax][i];
m[imax][i]=temp[i];
}

for(i=0;i<4;i++)
{
for(j=0;j<3;j++)
{
printf("%d", m[i][j]);
}
printf("\r\n");
}
}

так неверная же программа

kainen 05.10.2008 22:04

да, я зануда


Текущее время: 10:16. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод: zCarot