Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
HaRuKy
 Аватар для HaRuKy
5 / 5 / 0
Регистрация: 20.03.2011
Сообщений: 286
31.10.2011, 22:04     Небольшой цикл #1
Доброй ночи всем
Подскажите пожалуйста как правильно написать цикл, чтобы программа производила произведение элементов массива, расположенных между первым и вторым нулевыми элементами. Первую и третью часть сделал, а вот вторую не получается…Основное задание:
В одномерном массиве, состоящем из 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;
}
Заранее спасибо
Примечание: Компилятор Версии Турбо Си++
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2011, 22:04     Небольшой цикл
Посмотрите здесь:

C++ Небольшой вопросик
C++ Небольшой вопрос по массивам
небольшой вопрос..... C++
C++ Исправить небольшой код
Небольшой трабл с функциями C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nastya24
 Аватар для 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];
HaRuKy
 Аватар для HaRuKy
5 / 5 / 0
Регистрация: 20.03.2011
Сообщений: 286
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;


Подскажите пожалуйста какие изменения необходимо внести в программу, что программа находила индекс максимального элемента массива, а не сам максимальный элемент...
Nastya24
 Аватар для 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};
Yandex
Объявления
01.11.2011, 16:19     Небольшой цикл
Ответ Создать тему
Опции темы

Текущее время: 20:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru