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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.10.2008, 09:52   #1
conqueror
Пользователь
 
Регистрация: 15.01.2008
Сообщений: 31
По умолчанию Одномерный массив [Borland C++]

Помогите с решением задачи

Среди элементов массива, лежащих вне интервала, найти минимальный по абсолютной величине. Если он окажется меньше первого, вычислить сумму элементов, расположенных после минимального, иначе их произведение. Число элементов в массиве не более 20.
conqueror вне форума Ответить с цитированием
Старый 14.10.2008, 14:31   #2
conqueror
Пользователь
 
Регистрация: 15.01.2008
Сообщений: 31
Восклицание

Кто-нибудь может помочь?
conqueror вне форума Ответить с цитированием
Старый 15.10.2008, 02:07   #3
A_r_r_a_y
Форумчанин
 
Аватар для A_r_r_a_y
 
Регистрация: 01.03.2008
Сообщений: 165
По умолчанию

уточните, что значит вне интервала, т.е. задаются ограничения на само значение элемента массива или какой-то отрезок от позиции n до позиции m, который не учитывается?
A_r_r_a_y вне форума Ответить с цитированием
Старый 15.10.2008, 10:33   #4
conqueror
Пользователь
 
Регистрация: 15.01.2008
Сообщений: 31
По умолчанию

Цитата:
Сообщение от A_r_r_a_y Посмотреть сообщение
т.е. задаются ограничения на само значение элемента массива?
Именно так.
conqueror вне форума Ответить с цитированием
Старый 16.10.2008, 00:52   #5
A_r_r_a_y
Форумчанин
 
Аватар для A_r_r_a_y
 
Регистрация: 01.03.2008
Сообщений: 165
По умолчанию

ну вот вроде так
Код:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int main()
 {
  clrscr();
  randomize();
  int i,n,mas[20];
  printf("Vvedite kol-vo el-tov (ne bolee 20): ");
  scanf("%d",&n);
  for (i=0; i<n; i++)
    mas[i]=50-random(100);
  printf("\n");
  for (i=0; i<n; i++)
    printf("%3d",mas[i]);
  int a,b;
  printf("\nVvedite nizhnyuyu granicu: ");
  scanf("%d",&a);
  printf("\nVvedite verhnyuyu granicu: ");
  scanf("%d",&b);
  int min,pmin;
  if ((mas[0]<a) || (mas[0]>b))
    min=mas[0];
  else
    {
     for (i=0;mas[i]>a && mas[i]<b;i++);
     min=mas[i];
    }
  for (i=0; i<n; i++)
    if (abs(mas[i]) < abs(min) && (mas[i]<a || mas[i]>b))
      {min=mas[i];
       pmin=i;
      }
  printf("\nminimalniy el-t po modulyu = %d",min);
  if (min < mas[0])
    {int sum;
     for (i=pmin+1,sum=0; i<n; i++)
       sum+=mas[i];
     printf("\n%d < %d => summa = %d",min,mas[0],sum);
    }
  else
    {long proizv;
     for (i=pmin+1,proizv=1; i<n; i++)
       proizv*=mas[i];
     printf("\n%d >= %d => proizvedenie = %d",min,mas[0],proizv);
    }
  getch();
  return 0;
 }
A_r_r_a_y вне форума Ответить с цитированием
Старый 18.10.2008, 13:55   #6
conqueror
Пользователь
 
Регистрация: 15.01.2008
Сообщений: 31
По умолчанию

где-то ошибка.
conqueror вне форума Ответить с цитированием
Старый 20.10.2008, 10:44   #7
conqueror
Пользователь
 
Регистрация: 15.01.2008
Сообщений: 31
По умолчанию

конечно для меня это темный лес, но эти строчки совсем не понял.

Код:
f ((mas[0]<a) || (mas[0]>b))
Код:
{
     for (i=0;mas[i]>a && mas[i]<b;i++);
     min=mas[i];
    }
Код:
  if (abs(mas[i]) < abs(min) && (mas[i]<a || mas[i]>b))
      {min=mas[i];
       pmin=i;
      }
conqueror вне форума Ответить с цитированием
Старый 20.10.2008, 15:03   #8
Алисик-кисик
 
Регистрация: 20.10.2008
Сообщений: 9
По умолчанию

Помогите пожалуйста решить задачу!!


Дан масиив из N элементов(натуральные числа).Определить количество элементов,кратных 3.
Алисик-кисик вне форума Ответить с цитированием
Старый 20.10.2008, 16:02   #9
NjaalkemeBit
Пользователь
 
Регистрация: 19.10.2008
Сообщений: 32
По умолчанию

Цитата:
Сообщение от Алисик-кисик Посмотреть сообщение
Помогите пожалуйста решить задачу!!


Дан масиив из N элементов(натуральные числа).Определить количество элементов,кратных 3.
Вроде так...


#include<iostream.h>

int main(int argc, char* argv[])
{
const int n=5;
int count=0;
int array[n] = {1,3,6,9,12};

for(int i=0;i<n;i++)
if (!(array[i] % 3))
count++;

cout<<count<<endl;

getchar();

return 0;
}
NjaalkemeBit вне форума Ответить с цитированием
Старый 20.10.2008, 17:18   #10
A_r_r_a_y
Форумчанин
 
Аватар для A_r_r_a_y
 
Регистрация: 01.03.2008
Сообщений: 165
По умолчанию

Цитата:
Сообщение от conqueror Посмотреть сообщение
где-то ошибка.
Еще несколько раз проверил, все работает так как и задумано, видимо я не совсем правильно понял что требуется от программы, уж больно расплывчато Вы сформулировали условия, приведите пример массива и ожидаемый результат и впредь старайтесь всегда снабжать вопрос подобным примером.
Цитата:
Сообщение от conqueror Посмотреть сообщение
конечно для меня это темный лес, но эти строчки совсем не понял.

Код:
f ((mas[0]<a) || (mas[0]>b))
Код:
{
     for (i=0;mas[i]>a && mas[i]<b;i++);
     min=mas[i];
    }
Код:
  if (abs(mas[i]) < abs(min) && (mas[i]<a || mas[i]>b))
      {min=mas[i];
       pmin=i;
      }
ну тут мы ищем минимум, нам надо присвоить ему первоначальное значение, обычно присваивается первый эл-т массива, но в данном случае нам нужно проверить лежит ли он внутри заданного интервала:
Код:
 
if ((mas[0]<a) || (mas[0]>b))
если да, то все отлично и мы присваиваем минимуму его значение,
если же нет, то мы идем по эл-там массива до тех пор, пока не дойдем до эл-та, удовлетворяющего нашим условиям, т.е. лежащего внутри интервала:
Код:
{
     for (i=0;mas[i]>a && mas[i]<b;i++);
     min=mas[i];
    }
ну и наконец то находим наш минимальный по модулю эл-т и запоминаем его позицию:
Код:
  if (abs(mas[i]) < abs(min) && (mas[i]<a || mas[i]>b))
      {min=mas[i];
       pmin=i;
      }
A_r_r_a_y вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
одномерный массив в delphi d3[Z.oRg] Помощь студентам 7 18.06.2011 15:04
одномерный массив ldx Паскаль, Turbo Pascal, PascalABC.NET 4 06.06.2008 17:45
одномерный массив fatdog Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 23.02.2008 10:05
Массив Одномерный flait111 Помощь студентам 3 15.12.2007 14:08
Одномерный массив SkyDreamer Помощь студентам 1 01.12.2007 21:22