Форум: Форум C++Разное
Новые темы: 00
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Обработка одномерных массивов
 
 автор: Cena   (26.11.2011 в 18:11)   письмо автору
 
 

Помогите пожалуйста с программой:
Задание: В массиве X[N] найти значение минимального положительного элемента массива и найти, сколькотаких элементов.
Мой код:
#include <iostream>
#include <math.h>
using namespace std;
int main()
{double X[N],min,Nmin;
int k,i;
cout<<"N=";
cin>>N;
cout<<"MASSIV X/N";
for (i=k=0;i<n;i++)
if (X[N]>0) k++;
if (k==1)
{min=X[N];
Nmin=N;}
else if (X[N]<min)
{min=X[N];
nmin=n;}
cout<<"X("<<N<<")="<<X[N]<<"\n";
system("PAUSE");
return EXIT_SUCCESS;
}
Я не сильно разбираюсь с массивами, очень хочу разобраться.

  Ответить  
 
 автор: cheops   (26.11.2011 в 20:00)   письмо автору
 
   для: Cena   (26.11.2011 в 18:11)
 

Можно начать отталкиваться от следующей программы
#include <stdio.h>
#include <iostream>
using namespace std;

int main ()
{
  double min, Nmin;
  double *X;
  int k, i, N;

  // Запрашиваем количество элементов в массиве
  cout << "N = ";
  cin >> N;

  // Выделяем память под массив
  X = new double[N];

  // Просим пользователя ввести значения
  for(i = 0; i < N; i++)
  {
    cout << "MASSIV X/" << i + 1 << " = ";
    cin >> X[i];
  }
  // Ищем минимальный элемент
  min = X[0];
  Nmin = 0;
  for(i = 0; i < N; i++)
  {
    if(min > X[i])
    {
      min = X[i];
      Nmin = i;
    }
  }
  // Выводим результа
  cout << "X(" << Nmin << ")=" << min << "\n";

  // Освобождаем динамически выделенную память
  delete [] X;

  // Остановка перед закрытием окна
  system("PAUSE");

  return 0;
}

  Ответить  
 
 автор: Cena   (26.11.2011 в 20:41)   письмо автору
 
   для: cheops   (26.11.2011 в 20:00)
 

Спасибо, а вот я ввожу при выполнении программы:
N=4
MASSIV X/1=1
MASSIV X/2=1
MASSIV X/3=2
MASSIV X/4=3
X{0}=1, минимальный элемент 1 и должно быть в скобочках количество минимальных элементов?
А как эту строку понять MASSIV X/1 ?

  Ответить  
 
 автор: cheops   (26.11.2011 в 20:47)   письмо автору
 
   для: Cena   (26.11.2011 в 20:41)
 

А... ясно сейчас сделаем.

>А как эту строку понять MASSIV X/1 ?
Собственно это просто приглашение для ввода очередного элемента массива X, числом указывается номер текущего элемента. Это можно исправить по собственному усмотрению.

  Ответить  
 
 автор: cheops   (26.11.2011 в 20:51)   письмо автору
 
   для: Cena   (26.11.2011 в 20:41)
 

Количество повторяющихся минимальных элементов, можно посчитать при помощи отдельного цикла
#include <stdio.h>
#include <iostream>
using namespace std;

int main ()
{
  double min, Nmin;
  double *X;
  int k, i, N;

  // Запрашиваем количество элементов в массиве
  cout << "N = ";
  cin >> N;

  // Выделяем память под массив
  X = new double[N];

  // Просим пользователя ввести значения
  for(i = 0; i < N; i++)
  {
    cout << "MASSIV X/" << i + 1 << " = ";
    cin >> X[i];
  }
  // Ищем минимальный элемент
  min = X[0];
  Nmin = 0;
  for(i = 0; i < N; i++)
  {
    if(min > X[i])
    {
      min = X[i];
      Nmin = i;
    }
  }
  for(i = 0, k = 0; i < N; i++)
  {
    if(min == X[i]) k++;
  }
  // Проверяем сколько таких элементов в вмассиве
  // Выводим результа
  cout << "X(" << Nmin << ")=" << min << "(" << k << ")\n";

  // Освобождаем динамически выделенную память
  delete [] X;

  // Остановка перед закрытием окна
  system("PAUSE");

  return 0;
 }

  Ответить  
 
 автор: Cena   (26.11.2011 в 20:54)   письмо автору
 
   для: cheops   (26.11.2011 в 20:51)
 

Спасибо, понятненько.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования