Просмотр полной версии : Язык программирования С
Народ кто нибудь шарит в этом??помогите плииз
"В двумерном N * K массиве целых чисел поменять местами строку, содержащую минимальный элемент массива, со строкой, содержащей максимальный элемент массива"
могла налажать в синтаксисе, т к на вижуалке на с++ писала
#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");
}
}
а чего в stdafx.h вообще?
P.S. Tommy, ты тоже из техникума? :)
а чего в stdafx.h вообще?
P.S. Tommy, ты тоже из техникума? :)
Ну типа того...гуап:)
Народ кто нибудь шарит в этом??помогите плииз
"В двумерном 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;
}
а чего в stdafx.h вообще?
P.S. Tommy, ты тоже из техникума? :)
стандартная библиотека, в которую входят основные библиотеки
потести, а то я не успел, может баги где есть...
он же сказал, что ему на c надо, на с такие конструкции не прокатят, даже "for(int i=0.." он не поймет
он же сказал, что ему на c надо, на с такие конструкции не прокатят, даже "for(int i=0.." он не поймет
тьфу ты! ну если неожиданно понадобиться вариант на c++, то вот пожалуйста:)) насколько я знаю в гуапе вроде у всех изучение начинается с паскаля или с++. может он опечатался?:)
могла налажать в синтаксисе, т к на вижуалке на с++ писала
#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");
}
}
так неверная же программа
могла налажать в синтаксисе, т к на вижуалке на с++ писала
Надо было изначально выбрать просто си проект, а не спп. А то получилось в перемешку. =)
да, я зануда
ага, редкостная :) алгоритм верен, может не оптимизирован, но верен :)
тьфу ты! ну если неожиданно понадобиться вариант на c++, то вот пожалуйста:)) насколько я знаю в гуапе вроде у всех изучение начинается с паскаля или с++. может он опечатался?:)
возможно он сам не знает :)
Надо было изначально выбрать просто си проект, а не спп. А то получилось в перемешку. =)
В вижуалке нельзя выбрать си проект, только си++. Можно было просто файл переименовать из срр в с, тогда он бы его компилил как си, но мне, честно говоря, было лень, сам разберется если что :)
ага, редкостная :) алгоритм верен, может не оптимизирован, но верен :)
для этой задачи алгоритм совпадает с постановкой задачи
а программа неверная
для этой задачи алгоритм совпадает с постановкой задачи
а программа неверная
Смотря, что ты называешь программой и смотря, что есть для тебя неверная программа. Тебе не понравилось, что она работает только для конкретной матрицы? Я вообще хотела написать просто абстрактный алгоритм без ввода и вывода данных и без проверки, чтобы тот парень сам потом додумал и доработал как ему надо, иначе нафиг вообще все это обучение, когда все делают за тебя? Но потом все же решила проверить, что написала, поэтому в код всунута какая-то матрица и вывод результата на экран (поэтому там перемешаны конкретные цифры и переменные N K)
Вообще камраду должно быть стыдно просить помощи в решении такой тревиальной задачи, независимо от требуемого языка программирования. Тем более когда ответ на его вопрос постят такие прекрасные девушки...
Я бы удавился от стыда...
Инсе респект ;) хотя я бы сделал немного не так
пс костяну тоже респект за отформатированный код и комментарии
хотя я бы сделал немного не так
я бы вообще передавал в функцию поиска указатель на одномерный массив (массив любой размерности можно представить как одномерный) и искал max/min в нем. а найдя индексы макс/мин значений, элементарно определяем в каких строках. есть одно но... было лень. =)
ps: В вижуалке нельзя выбрать си проект,
На вижеле перестал работать в последнее время. В основном Eclipse JDK(для GUI SWT) / CDK (для доступ к железу через JNI + MinGW).
Смотря, что ты называешь программой и смотря, что есть для тебя неверная программа. Тебе не понравилось, что она работает только для конкретной матрицы? Я вообще хотела написать просто абстрактный алгоритм без ввода и вывода данных и без проверки, чтобы тот парень сам потом додумал и доработал как ему надо, иначе нафиг вообще все это обучение, когда все делают за тебя? Но потом все же решила проверить, что написала, поэтому в код всунута какая-то матрица и вывод результата на экран (поэтому там перемешаны конкретные цифры и переменные N K)
ну да, задачаа настолько тривиальна, что ее постановка совпадает с решением
я бы вообще передавал в функцию поиска указатель на одномерный массив (массив любой размерности можно представить как одномерный) и искал max/min в нем. а найдя индексы макс/мин значений, элементарно определяем в каких строках. есть одно но... было лень. =)
красивая мысль. единственное, к чему хочется придраться - слова "указатель на массив"
к чему хочется придраться - слова "указатель на массив"согласен
vBulletin® v3.8.12 by vBS, Copyright ©2000-2024, vBulletin Solutions, Inc. Перевод: zCarot