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

Массивы - C++

Восстановить пароль Регистрация
 
SynaptyC
0 / 0 / 0
Регистрация: 04.10.2010
Сообщений: 31
25.11.2010, 13:44     Массивы #1
1) Найти максимальный по модулю массив.
2) Найти сумму элементов массива, расположенных между первым и вторым положительными элементами.
3) Преобразовать массив таким способом, чтобы элементы, равные нулю, располагались после всех остальных.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2010, 13:44     Массивы
Посмотрите здесь:

C++ Массивы
C++ Массивы
C++ Массивы
Массивы C++ C++
массивы C++
C++ Массивы
Массивы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-comrade-
355 / 356 / 42
Регистрация: 11.06.2010
Сообщений: 703
25.11.2010, 14:56     Массивы #2
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
#include<iostream>
 
using namespace std;
 
int main()
{
    int i,n,k1=0,k2=0,S=0,max;
    cout<<"  n="; cin>>n;
    int* a=new int [n];
    cout<<"  Enter elements: ";
    for(i=0;i<n;i++) cin>>a[i];
    max=a[0];
    for(i=1;i<n;i++) if(max<a[i]) max=a[i];
    cout<<"  max="<<max<<endl;
    for(i=0;;i++)   if(a[i]>0) { k1=i; break; }
    for(i=n-1;;i--) if(a[i]>0) { k2=i; break; }
    if(k1!=k2) 
    { 
        for(i=k1+1;i<k2;i++) S+=a[i];
        cout<<"  S="<<S<<endl;
    }
    else cout<<"  Impossible to count S"<<endl;
    cout<<"  New array: ";
    for(i=0;i<n;i++) if(a[i])    cout<<a[i]<<" "; 
    for(i=0;i<n;i++) if(a[i]==0) cout<<a[i]<<" "; 
    delete [] a;
    cout<<endl;
    system("pause");
    return 1;
}
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
25.11.2010, 14:58     Массивы #3
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
#include <stdio.h>
#include <stdlib.h>
 
#define size 10
 
int main(){
 int m[size] = {7, 6, 0, 4, 0, 3, 0, 1, -2, 0};
 int i, j ,tmp;
 
 for( i = 0 , j = 0 ; i < size ; i++ )
     if(m[i] > 0||m[i] < 0 ){
        tmp =  m[i];
        m[i] = m[j];
    m[j] = tmp;
        j++;
     }
 
 
 for( i = 0 ; i < size ; i++ )printf("%d ",m[i]);
 printf("\n");
 
 
 system("pause");
 return 0;
}
-comrade-
355 / 356 / 42
Регистрация: 11.06.2010
Сообщений: 703
25.11.2010, 21:48     Массивы #4
Если максимальный по модулю, то так:
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
#include <iostream>
#inckude <math.h>
 
using namespace std;
 
int main()
{
    int i,n,k1=0,k2=0,S=0,max;
    cout<<"  n="; cin>>n;
    int* a=new int [n];
    cout<<"  Enter elements: ";
    for(i=0;i<n;i++) cin>>a[i];
    max=a[0]; imax=0;
    for(i=1;i<n;i++) if(max<abs(a[i])) { max=abs(a[i]); imax=i; }
    cout<<"  max="<<a[imax]<<endl;
    for(i=0;;i++)   if(a[i]>0) { k1=i; break; }
    for(i=n-1;;i--) if(a[i]>0) { k2=i; break; }
    if(k1!=k2) 
    { 
        for(i=k1+1;i<k2;i++) S+=a[i];
        cout<<"  S="<<S<<endl;
    }
    else cout<<"  Impossible to count S"<<endl;
    cout<<"  New array: ";
    for(i=0;i<n;i++) if(a[i])    cout<<a[i]<<" "; 
    for(i=0;i<n;i++) if(a[i]==0) cout<<a[i]<<" "; 
    delete [] a;
    cout<<endl;
    system("pause");
    return 1;
}
SynaptyC
0 / 0 / 0
Регистрация: 04.10.2010
Сообщений: 31
05.12.2010, 13:25  [ТС]     Массивы #5
Цитата Сообщение от -comrade- Посмотреть сообщение
Если максимальный по модулю, то так:
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
#include <iostream>
#inckude <math.h>
 
using namespace std;
 
int main()
{
    int i,n,k1=0,k2=0,S=0,max;
    cout<<"  n="; cin>>n;
    int* a=new int [n];
    cout<<"  Enter elements: ";
    for(i=0;i<n;i++) cin>>a[i];
    max=a[0]; imax=0;
    for(i=1;i<n;i++) if(max<abs(a[i])) { max=abs(a[i]); imax=i; }
    cout<<"  max="<<a[imax]<<endl;
    for(i=0;;i++)   if(a[i]>0) { k1=i; break; }
    for(i=n-1;;i--) if(a[i]>0) { k2=i; break; }
    if(k1!=k2) 
    { 
        for(i=k1+1;i<k2;i++) S+=a[i];
        cout<<"  S="<<S<<endl;
    }
    else cout<<"  Impossible to count S"<<endl;
    cout<<"  New array: ";
    for(i=0;i<n;i++) if(a[i])    cout<<a[i]<<" "; 
    for(i=0;i<n;i++) if(a[i]==0) cout<<a[i]<<" "; 
    delete [] a;
    cout<<endl;
    system("pause");
    return 1;
}
Ошибочку выдаёт в строчке max=a[0]; imax=0; там что-то с imax, в следующей строке тоже. Можно как-то это по другому записать ?
asics
Freelance
Эксперт C++
 Аватар для asics
2841 / 1778 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
05.12.2010, 13:28     Массивы #6
SynaptyC, Естественно, так-как переменная imax не обявлена, напишы эту строчку так -
C++
1
max=a[0]; int imax=0;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.12.2010, 13:32     Массивы
Еще ссылки по теме:

массивы C++
Массивы C++
Массивы C++
C++ Массивы
индексные массивы и адресные массивы C++

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

Или воспользуйтесь поиском по форуму:
SynaptyC
0 / 0 / 0
Регистрация: 04.10.2010
Сообщений: 31
05.12.2010, 13:32  [ТС]     Массивы #7
Цитата Сообщение от asics Посмотреть сообщение
SynaptyC, Естественно, так-как переменная imax не обявлена, напишы эту строчку так -
C++
1
max=a[0]; int imax=0;
Спасибо
Yandex
Объявления
05.12.2010, 13:32     Массивы
Ответ Создать тему
Опции темы

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