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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2010, 19:36   #1
uropb992
Пользователь
 
Регистрация: 30.12.2009
Сообщений: 33
По умолчанию С++ В одномерном массиве, состоящем из n-вещественных элементов. вычислить:

В одномерном массиве, состоящем из n-вещественных элементов. вычислить:
1) максимальный по модулю элемент массива;
2) Сумму элементов массива, расположенных между первым и вторым положительными элементами.
Преобразовать массив так, чтобы элементы равные нулю располагались после всех остальных)

#include <iostream.h>
#include<math.h>
int main(){
int n;
cout<<"Vvedite kol-vo elementov ";cin>>n;
int p=1, *a=new int[n];
int i,min=100,l,sum=0,tmp;
cout<<"Vvedite elementi masiva";
for (i=0;i<n;i++) cin>>a[i];
//находим произведение положительных элементов
for (i=0;i<n;i++) if(a[i]>0) p*=a[i];
cout<<"Proizvedenie polozhitel'nix elementov = "<<p<<endl;
//находим индекс миниального элемента
for (i=0;i<n;i++) if(a[i]<min){min=a[i];l=i;
}
cout<<"Minimal'nii element "<<a[l]<<endl;
//находим сумму до 1го минимального элемента
for (i=0;i<l;i++) sum+=a[i];
cout<<"Summa elementov do 1-ro min ravna "<<sum<<endl;
//
for (i=0;i<n;i++) cout<<a[i]<<" ";
cout<<" "<<endl;
cout<<"Otsortirovannii massiv - "<<endl;
//сортируем массив
for( i=0;i<n;i+=2){
for(int j=i;j<n;j+=2)
if (a[j]<a[i]){tmp=a[j]; a[j]=a[i]; a[i]=tmp;
}}
for( i=1;i<n;i+=2){
for(int j=i;j<n;j+=2)
if (a[j]<a[i]){tmp=a[j]; a[j]=a[i]; a[i]=tmp;
}}

for (i=0;i<n;i++) cout<<a[i]<<" ";
cout<<" "<<endl;
return 0;
}

Примерный шаблон, где-то надо что-то изменить ((
uropb992 вне форума Ответить с цитированием
Старый 24.05.2010, 20:02   #2
blondino4ka_milk
Пользователь
 
Аватар для blondino4ka_milk
 
Регистрация: 02.03.2010
Сообщений: 59
По умолчанию

Код:
#include <stdio.h>
#include <math.h>
#include <windows.h>
        

#define ARRSIZE 10
int main(void){
        double arr[ARRSIZE] = { -1.4, -0.8, 2.2, -4.0, -5.5, 2.0, 0.0, 0.0, -15.0, 11.4 };
        double max, sum, tmp;
        int i, maxi, j;
        

        printf("\nИсходный массив:\n");
        for ( i = 0; i < ARRSIZE; ++i )
                printf("ARR[%d] = %5.1f\n", i, arr[i]);
        
        /* 1 */
        maxi = 0;
        max = fabs(arr[maxi]);
        for ( i = 1; i < ARRSIZE; ++i ){
                if ( max < fabs(arr[i]) ){
                        maxi = i;
                        max = fabs(arr[maxi]);
                }
        }
        printf("\nМаксимальный по модулю элемент:\nARR[%d] = %.1f\t%.1f\n", maxi, arr[maxi], max); 
        
        /* 2 */
        i = 0;
        sum = 0.0;
        while ( arr[i] < 0  && i < ARRSIZE )
                ++i;
        if ( i == ARRSIZE ){
                printf("\nВ массиве нет положительных элементов!\n");
                goto THREE;
        }
        ++i; 
        while ( arr[i] < 0 && i < ARRSIZE )
                sum += arr[i++];
        if ( i == ARRSIZE ){
                printf("\nВ массиве только один положительный элемент!\n");
                goto THREE;
        }
        printf("\nСумма элементов между первым и вторым положительными равна %.1f\n", sum);
        

        THREE:

        for ( j = ARRSIZE - 1; j >=0 && arr[j] == 0.0; --j )
                ;
        if ( j < 0 ){
                printf("\nВсе элементы в массиве нулевые\n");
                return 0;
        }
        for ( i = 0; i < j; ++i ){
                while ( arr[i] == 0 && i < j ){
                        tmp = arr[i];
                        arr[i] = arr[j];
                        arr[j--] = tmp;
                }
        }

        printf("\nВсе нули в конце массива\n");
        for ( i = 0; i < ARRSIZE; ++i )
                printf("ARR[%d] = %5.1f\n", i, arr[i]); 
        
        return 0;
}
blondino4ka_milk вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В одномерном массиве , состоящем из n целочисленных элементов, вычислить номер максимального элемента мас Ufa Помощь студентам 1 21.04.2010 14:06
В одномерном массиве, состоящем из n элементов вычислить Rusat Помощь студентам 2 09.03.2010 17:04
В одномерном массиве, состоящем из n вычислить в Паскале: Rusat Помощь студентам 3 07.03.2010 15:59
В одномерном массиве, состоящем из n веществ элементов, вычислить LUCK Общие вопросы C/C++ 5 29.01.2010 19:52
В одномерном массиве, состоящем из n вещественных элементов, вычислить сумму элементов массива HazelHen Общие вопросы C/C++ 2 29.03.2009 15:16