Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.04.2009, 19:34   #1
StudeHt
Пользователь
 
Регистрация: 05.04.2009
Сообщений: 78
По умолчанию Разность между максимальным и минимальным значениями

Здравствуйте Господа программисты! Помогите пожалуйста исправить программу. Задание следующее:Задано N вещественных чисел. Вычислить разность между максимальным и минимальным из них.
Вот мой код(вероятнее всего написана полная ерунда):
Код:
#include<iostream.h>
#include<conio.h>
#include<math.h>

float FindMaxAndMin(float* Mas, int m)
{
        float Max,Min,Answer;
        Max=Mas[1];
        Min=Mas[1];
        for (int i=1; i<m; i++)
        {
          if (Mas[i]>Max)
            Max=Mas[i];
          if (Mas[i]<Min)
            Min=Mas[i];
        }
        Answer=Max-Min;
        cout<<"Разность между значениями max и min равно "<<Answer;
        getch();
        return 0;
}

void main()
{
        float Max,Min;
        float Mas[200];
        int m;
        clrscr();
        do
        {
          cout<<"Введите число элементов массива ";
          cin>>m;
          if (m<2 && m>200)
            cout<<"Ошибка! Введен недопустимый размер массива";
        }
        while (m<2 && m>200);
        for (int i=0; i<m; i++)
        {
          cout<<"Введите элемент N %i ",i++;
          cin>>Mas[i];
        }
        FindMaxAndMin;
}
Заранее огромное спасибо!!!
StudeHt вне форума Ответить с цитированием
Старый 23.04.2009, 19:50   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Исправлено:
Код:
#include<iostream.h>
#include<conio.h>
#include<math.h>

float FindMaxAndMin(float* Mas, int m)
{
        float Max,Min,Answer;
        Max=Mas[0];
        Min=Mas[0];
        for (int i=0; i<m; i++)
        {
          if (Mas[i]>Max)
            Max=Mas[i];
          if (Mas[i]<Min)
            Min=Mas[i];
        }
        Answer=Max-Min;
        cout<<"Разность между значениями max и min равно "<<Answer;
        getch();
        return 0;
}

int main()
{
        float Max,Min;
        float Mas[200];
        int m;

        do
        {
          cout<<"Введите число элементов массива ";
          cin>>m;
          if (m<2 && m>200)
            cout<<"Ошибка! Введен недопустимый размер массива";
        }
        while (m<2 && m>200);
        for (int i=0; i<m; i++)
        {
          cout<<"Введите элемент "<<i<<":  ";
          cin>>Mas[i];
        }
        cout<<endl;
        FindMaxAndMin(Mas,m);
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 23.04.2009, 19:54   #3
StudeHt
Пользователь
 
Регистрация: 05.04.2009
Сообщений: 78
По умолчанию

Спасибо большое Sazary!!!
StudeHt вне форума Ответить с цитированием
Старый 23.04.2009, 22:07   #4
StudeHt
Пользователь
 
Регистрация: 05.04.2009
Сообщений: 78
По умолчанию

И снова прошу вашей помощи Господа эксперты. Задание следующее:Вычеркнуть из матрицы i-е строки и j-е столбцы, удовлетворяющие условию: i*j = z Вот то что получилось, но что то не так:
Код:
#include<iostream.h>
#include<conio.h>

void main()
{
        int Mas[15][15];
        int m,n,z,i,j,k;
        do {
        cout<<"Введите число строк матрицы ";
        cin>>m;
        cout<<"Введите число столбцов матрицы ";
        cin>>n;
           }
        while (m<2 && n<2 && m>15 && n>15);
        cout<<"Введите Z=";
        cin>>z;
        cout<<"Введите "<<m*n<<" элементов матрицы ";
        for (i=0; i<m; i++)
        for (j=0; j<n; j++)
          cin>>Mas[i][j];
          for (i=0; i<m; i++)
          for (j=0; j<n; j++)
            if (i*j==z)
            {
              for (k=0; k<m; k++)
                Mas[i][k]=0;
              for (k=0; k<n; k++)
                Mas[k][j]=0;
              for (i=0; i<m; i++)
              {
                for (j=0; j<n; j++)
                cout<<Mas[i][j]<<" ";
                cout<<"\n";
              }
            }
            getch();
}
StudeHt вне форума Ответить с цитированием
Старый 23.04.2009, 22:13   #5
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

StudeHt
Ответьте сначала на вопрос: нужно вычеркивать, исходя из данных для исходной матрицы, или после каждого вычеркивания нужно брать новые i и j?

И еще: вычеркнуть - значит занулить?
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 23.04.2009, 22:17   #6
StudeHt
Пользователь
 
Регистрация: 05.04.2009
Сообщений: 78
По умолчанию

Вычеркивать нужно исходя из данных для исходной матрицы. В задании написано вычеркнуть. В своем коде я решил сделать это обнулив элементы матрицы.
StudeHt вне форума Ответить с цитированием
Старый 23.04.2009, 22:22   #7
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

StudeHt, ну если вычеркивать так, как вы, то вот.
Ввод сделал рандомным, т.к. лень вводить 25 элементов вручную )

Код:
#include <iostream.h>
#include <conio.h>
#include <time.h>

int main()
{
int Mas[15][15];
int m,n,z,i,j,k;
do {
 cout<<"Strok: ";
 cin>>m;
 cout<<"Stolbcov: ";
 cin>>n;
 } while (m<2 && n<2 && m>15 && n>15);
cout<<"Введите Z=";
cin>>z;
//cout<<"Введите "<<m*n<<" элементов матрицы ";
for (i=0; i<m; i++)
 {
  for (j=0; j<n; j++)
   {
    //cin>>Mas[i][j];
    Mas[i][j] = rand()%20;
    cout.width(4);
    cout<<Mas[i][j];
   }
  cout<<endl;
 }

for (i=0; i<m; i++)
 for (j=0; j<n; j++)
  if (i*j==z)
  {
   for (k=0; k<m; k++)
    Mas[i][k]=0;
   for (k=0; k<n; k++)
    Mas[k][j]=0;
  }

cout<<endl;
for(i=0;i<m;i++)
 {
  for(j=0;j<n;j++)
   {
    cout.width(4);
    cout<<Mas[i][j];
   }
  cout<<endl;
 }
getch();
return 0;
}
----------------------
Цитата:
В задании написано вычеркнуть. В своем коде я решил сделать это обнулив элементы матрицы.
Имхо вычеркнуть - сдвинуть все строки (или столбцы) ниже (правее) вычеркиваемой вверх (влево) на 1 позицию. То есть также уменьшить размер матрицы.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 23.04.2009, 22:26   #8
StudeHt
Пользователь
 
Регистрация: 05.04.2009
Сообщений: 78
По умолчанию

И снова спасибо Вам Sazary!!! Побольше бы таких людей как Вы!
StudeHt вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычислить максимальную разность между К и суммой двух соседних эллементов массива. Luska Помощь студентам 3 22.03.2009 19:22
Разность между max и min значениями Иван 883 Паскаль, Turbo Pascal, PascalABC.NET 2 16.02.2009 23:24
Исключить из файла слово с минимальным количеством слогов. катя@90 Паскаль, Turbo Pascal, PascalABC.NET 2 11.12.2008 14:23
в двухмерном массиве поменять местами столбцы с максимальным и минимальным элементами Лёха Помощь студентам 5 18.12.2007 18:12
поиск кратчайшей сортировки, с минимальным кол-вом перестановок sad8c Помощь студентам 9 14.12.2007 10:23