С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
HaRuKy
5 / 5 / 0
Регистрация: 20.03.2011
Сообщений: 300
#1

Небольшой цикл - C++

31.10.2011, 22:04. Просмотров 372. Ответов 3
Метки нет (Все метки)

Доброй ночи всем
Подскажите пожалуйста как правильно написать цикл, чтобы программа производила произведение элементов массива, расположенных между первым и вторым нулевыми элементами. Первую и третью часть сделал, а вот вторую не получается…Основное задание:
В одномерном массиве, состоящем из n целых элементов, вычислить:
1. номер максимального элемента массива;
2. произведение элементов массива, расположенных между первым и вторым нулевыми элементами.
3. Преобразовать массив таким образом, чтобы в первой его половине располагались элементы, стоявшие в нечетных позициях, а во второй половине — элементы, стоявшие в четных позициях.
Текст программы:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include "iostream.h"
#include "stdlib.h"
#include "conio.h"
#include "math.h"
#define N 100
void main()
{ clrscr();
  int a[N];
  int n,i,k1,k2,max;
  int s=0;
  cout<<"\n Vvedite razmer massiva n="; cin>>n;
 // Ввод массива с помощью ДСЧ
randomize();
  for(i=0; i<n; i++)
  a[i]=random(5)-1;
  {for(i=0; i<n; i++)
   cout<<" "<<a[i]<<" ";
   cout<<"\n";
  }
// Поиск максимального элемента  
  max=0;
  for(i=0; i<n; i++)
  if(a[i]>max)max=a[i];
  for(i=0; i<n; i++) if(a[i]==0){k1=i;break;} // Условие первого нулевого элемента
  for(i=0; i<n; i++) if(a[i]==0){k2=i;break;} // Условие второго нулевого элемента
  for(i=k1+1; i<k2; i++) s+=a[i]; 
  cout<<"\n Proizvedenie = "<<s;
  cout<<"\n max element massiva = "<<max;
 // Преобразование массива (3 часть)  
 cout<<"\n Massiv: ";
  for(i=0; i<n; i+=2) cout<<a[i]<<" ";
  for(i=1; i<n; i+=2) cout<<a[i]<<" ";
  cout<<endl;
}
Заранее спасибо
Примечание: Компилятор Версии Турбо Си++
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2011, 22:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Небольшой цикл (C++):

Почему цикл на при 1 уходит в бесконечный цикл? - C++
#define _CRT_SECURE_NO_WARNINGS #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;string.h&gt; int main() { int x=0, y=0,...

Цикл: цикл for вообще никак не воспринимается транслятором - C++
Пишу программу, которая производит различные действия с одномерным массивом. Возникла следующая проблема: цикл for вообще никак не...

Задание на цикл с параметром и цикл с постусловием - C++
Помогите пожалуйста написать программу с этими циклами. 1. Вычислить и напечатать таблицу значений функции Z= (e^-x)sinx для 0&lt;=x&lt;=П,...

Цикл for/Цикл while Помогите срочно пожалуйста... - C++
1.Вычислить и вывести на экран в виде таблицы значения функции F от x1 до x2 с шагом dx. где a, b и c - действительные числа. 2.Цикл...

Небольшой баг - C++
Дана очень простая задачка: Даны числа a0, X, Y, M. Рассмотрим бесконечную последовательность ai = (X * ai-1 + Y) mod M, где операция...

Недочёт небольшой - C++
Написал программу, показываю преподавателю , а она недовольна, говорит что еще вывод матрицы должен быть,я всю голову сломал уже - ну как и...

3
Nastya24
32 / 18 / 4
Регистрация: 30.09.2011
Сообщений: 59
31.10.2011, 22:38 #2
C++
1
2
3
4
5
6
7
8
9
int j1=0,j2=0,p=1;
for(int i=0;i<10;i++)
if(mas[i]==0){j1=i+1;break;}
 
for(int i=j1;i<10;i++)
if(mas[i]==0){j2=i;break;}
 
for(int i=j1;i<j2;i++)
    p=p*mas[i];
1
HaRuKy
5 / 5 / 0
Регистрация: 20.03.2011
Сообщений: 300
01.11.2011, 13:54  [ТС] #3
// Поиск максимального элемента
int max=0;
for(i=0; i<n; i++)
if(a[i]>max)max=a[i];
cout<<"\n max element massiva = "<<max;


Подскажите пожалуйста какие изменения необходимо внести в программу, что программа находила индекс максимального элемента массива, а не сам максимальный элемент...
0
Nastya24
32 / 18 / 4
Регистрация: 30.09.2011
Сообщений: 59
01.11.2011, 16:19 #4
C++
1
2
3
int max=0,index;
for(i=0; i<n; i++)
if(a[i]>max){index=i};
0
01.11.2011, 16:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2011, 16:19
Привет! Вот еще темы с ответами:

небольшой вопрос..... - C++
подскажите,пожалуйста,что в этой записи обозначает &amp;(амперсант) перед переменными? int dd, mm, yy; fscanf(Query,&quot;%d.%d.%d&quot;, &amp;dd, &amp;mm,...

Небольшой вопросик - C++
Помогите ответить на вопрос, давно не ввлезал в си, а вот пришлось решать тест и я сел на этом вопросе. Если ключ доступа не указан явно...

Небольшой вопрос от нуба в C++ - C++
Есть задача: в одномерном массиве найти номер максимального элемента, сосчитать произведение между первым и вторым нулями, и перестроить...

Прошу небольшой помощи - C++
Добрый вечер господа. В Этой теме(Кликабельно), я определился с тем, что начну изучение C++ И у меня к Вас возникает вопрос....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.