Консультация № 174675
29.11.2009, 16:51
35.00 руб.
0 4 2
Доброго времени суток!
Необходимо написать программку на C++: в одномерном массиве n[7] = {13,21,38,47,54,3,12} заменить минимальный элемент на противоположный по знаку. Задача по основам программирования. Желательно, чтобы работала на VS 2008.
Заранее благодарен.

Обсуждение

Неизвестный
29.11.2009, 17:14
общий
это ответ
Здравствуйте, starcode.
Программа. C++.
Код:
#include <iostream>

using namespace std;

int main(int argc, char **argv)
{
// Исходный массив
int n[]={13,21,38,47,54,3,12};
// Размер массива
size_t size=sizeof(n)/sizeof(n[0]);
// Индекс минимального
size_t min=0;
for (size_t i=1;i<size;++i)
{
if (n[min]>n[i])
{
min=i;
}
}
// Меняем согласно условия
n[min]=-n[min];
// Выводим результат
for (size_t i=0;i<size;++i)
{
cout<<n[i]<<" ";
}
cout<<endl;
return 0;
}

Вывод программы:
Код:
13  21  38  47  54  -3  12
5
давно
Специалист
246813
155
29.11.2009, 17:26
общий
это ответ
Здравствуйте, starcode.
Программа написана и проверена на Microsoft Visual C++ 6.0;
Комментарии в программе
Код:
#include <iostream>
using namespace std;

const k=7;
void main(){
int i, min;
int n[k]={13,21,38,47,53,3,12}; // Пропишем матрицу

for(i=0;i<k;i++) //Выводим элементы массива
cout<<"n["<<i<<"]="<<n[i]<<endl;

min=n[0];
for(i=1;i<k;i++){ //Определяем минимальный элемент
if (n[i]<min)
min=n[i];
}

//Находим минимальный элемент и заменяем на противоположный по знаку
for(i=0;i<k;i++)
if (n[i]==min)
n[i]=-n[i];

cout<<"___________________________________"<<endl;
//Выводим элементы массива
for(i=0;i<k;i++)
cout<<"n["<<i<<"]="<<n[i]<<endl;
}
5
Отличный ответ.
Неизвестный
29.11.2009, 17:47
общий
а если ещё найти номера всех элементов массива, равных максимальному элементу этого массива?
давно
Специалист
246813
155
29.11.2009, 22:03
общий
starcode:
В этом случае следует дописать несколько строчек.
Замечание: если минимальных элементов будет несколько, то за номер будет браться последний номер минимального элемента.
Код:
#include <iostream>
using namespace std;

const k=7;
void main(){
int i, min, num;
int n[k]={13,21,38,47,53,3,12}; // Пропишем матрицу

for(i=0;i<k;i++) //Выводим элементы массива
cout<<"n["<<i<<"]="<<n[i]<<endl;

min=n[0];
num=0;
for(i=1;i<k;i++){ //Определяем минимальный элемент
if (n[i]<min){
min=n[i];
num=i;
}
}

cout<<"Nomer maksimal'nogo elementa massiva: "<<num<<endl;

//Находим минимальный элемент и заменяем на противоположный по знаку
for(i=0;i<k;i++)
if (n[i]==min)
n[i]=-n[i];


//Выводим элементы массива
for(i=0;i<k;i++)
cout<<"n["<<i<<"]="<<n[i]<<endl;
}
Форма ответа