1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Одномерные Числовые Массивы

Тема в разделе "Вопросы новичков и не только", создана пользователем 203, 21 фев 2012.

  1. 203

    203 New Member

    Репутация:
    0
    Регистрация:
    21 фев 2012
    Сообщения:
    2
    Симпатии:
    0
    Задача 1:
    В одномерном массиве, состоящем из не более чем n (n<=10) вещественных элементов, вводимых с клавиатуры, вычислить:
    1) количество элементов массива, больших С;
    2) произведение элементов массива, расположенных после максимального по модулю элемента.
    Преобразовать массив таким образом, чтобы сначала располагались все отрицательные
    элементы, а потом — все положительные (элементы, равные 0, считать
    положительными).

    Привет форумчане. У меня возникла проблема в решении вот этой задачи. У меня получилась сделать только 1 условие а с остальными беда. Может кто поможет в решении этой задачи. Если нужно могу кинуть код где я выполнил 1 условие задачи. Заранее спасибо.
     
  2. Гость

    Репутация:
    0
    Примерно так, могут быть ошибки. Специально не комментировал операторы, хотя избыточно подробно описал переменные - надеюсь, сам разберешься.
    Код:
    #include <iostream>
    #include <math.h>
    using namespace std;
    
    const float C=100.111;	 
    float dest[9];
    
    int main(int argc, char** argv) {
    int num=0;		  //кол-во элементов > С
    int index=0;		 //номер максимального по модулю элемента
    float max;			//его значение
    for (char i=0;i<10;i++)
    {
    cin >> dest[i];
    if (dest[i]>C)
    num++;
    if (!i)
    max=fabs(dest[i]);
    else if (fabs(dest[i])>=max)
    {
    max=fabs(dest[i]);
    index=i;		
    }
    }
    //далее max - произведение элементов, больших максимального по модулю
    max=1;
    for (char i=0;i<10;i++)
    {
    int no_less_zero=0;	  //нет элементов <0
    if (i>index)
    max=max*dest[i];	 //здесь, в общем-то, ошибка.
    if (dest[i]>=0&!no_less_zero)
    {
    for (char j=i+1;j<10;j++)
    if (dest[j]<0)
    {
    float tmp=dest[i];
    dest[i]=dest[j];
    dest[j]=tmp;
    }
    else
    no_less_zero=1;
    }
    cout << dest[i]<< '\n';
    }
    cout << num<< '\n';
    cout << index+1<< '\n';
    cout << max;
    return 0;
    }
     
  3. 203

    203 New Member

    Репутация:
    0
    Регистрация:
    21 фев 2012
    Сообщения:
    2
    Симпатии:
    0
    Большое спасибо за задачу.
     
Загрузка...

Поделиться этой страницей