![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 20.10.2011
Сообщений: 4
|
![]()
Добрый день форумчани!просьба помочь знающих людей в Borland C.
имеется условие задания: В одномерном массиве,состоящем из N вещественных элементов,вычислить: 1.максимальный элемент массива. 2.сумму элементов массива,расположенных с самого первого до последнего положительного элемента. Сжать массив,удалив из него все элементы,модуль которых находится в интервале[A,B] Освободившиеся в конце массива элементы заполнить нулями. !!!имеются небольшие наработки в борланд с.сделал максимальный элемент массива,и сумму всех элементов. #include <stdio.h> #include <conio.h> #define N 15 int main(void) { float FMass[N] = {0.11,-12.22,33.3304,-5.401,555.5102, 89.2,0.2,-1.22,22.1,1.22,-4.14,559.36,8.8,9.9,7.25}; float Summa = 0.0; float Sredn = 0.0; int i=0; int IndexOfMax = -1; float fMax = FMass[0]; clrscr(); for(i=0;i<N;i++) // print Fmass: { printf("\n FMass[%d] = %+12.4f",i,FMass[i]); } // Summa: ("symma elementov") for(i=0;i<N;i++) { Summa = Summa + FMass[i]; } // IndexOfMax,fMax: ("maksimalni element massiva") for(i=0;i<N;i++) { if(fMax < FMass[i]) { IndexOfMax = i; fMax = FMass[i]; } } printf("\n\n Summa = %+12.4f \t IndexOfMax = %d fMax = %+12.3f",Summa,IndexOfMax,fMax); getch(); return 1; } |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 01.07.2011
Сообщений: 423
|
![]()
А в чем проблема-то? Используйте уже написанный код.
Со мной можно встретиться на www.clipper.borda.ru
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 20.10.2011
Сообщений: 4
|
![]()
проблемма в том что не могу сделать пункт 2.
2)Вычислить сумму элементов массива,расположенных с самого первого до последнего положительного элемента. Сжать массив,удалив из него все элементы,модуль которых находится в интервале[A,B] Освободившиеся в конце массива элементы заполнить нулями. смог тока посчитать сумму всех элементов. |
![]() |
![]() |
![]() |
#4 | |
Форумчанин
Регистрация: 01.07.2011
Сообщений: 423
|
![]() Цитата:
до последнего положительного,или, вообще, с первого элемента (не важно како1он: положительный или нет) и до последнего положительного? Вам надо найти последний положительный элемент.
Со мной можно встретиться на www.clipper.borda.ru
|
|
![]() |
![]() |
![]() |
#5 |
Регистрация: 20.10.2011
Сообщений: 4
|
![]()
как я понял надо найти первый положительный элемент массива и последний и посчитать их сумму.только незнаю как это реализовать
Последний раз редактировалось starkover; 20.10.2011 в 17:47. |
![]() |
![]() |
![]() |
#6 | |
Форумчанин
Регистрация: 01.07.2011
Сообщений: 423
|
![]() Цитата:
Код:
Эта функция находит первый положительный элемент в диапазоне [first, last ). Если такой не найден,то возвращается last. Если у вас,допустим,сть массив размерности N: Код:
Код:
Со мной можно встретиться на www.clipper.borda.ru
Последний раз редактировалось Сыроежка; 20.10.2011 в 17:51. |
|
![]() |
![]() |
![]() |
#7 |
Регистрация: 20.10.2011
Сообщений: 4
|
![]()
вот вроде сделал программу но почему то не откомпилировать в borland c выдает ошибку
строчка 53: declaration is not allowed here. вот сама 53 строчка int A = 0, B = 10, count = 0, j; а в онлайн компиляторе http://codepad.org/ все компилирует помогите решить данную проблему #include <stdio.h> #include <time.h> #include <stdlib.h> #define N 10 // Печать массива void PrintArray ( int *a ) { int i; for ( i = 0; i < N; i++ ) printf ( "%d ", a [ i ] ); printf ( "\n" ); } void main ( void ) { int Array [ N ], // массив max, // максимальный элемент index, // номер элемента lastPositive, // номер последнего полоэительного элемента sum = 0; // сумма элементов // активация датчика случайных чисел srand ( time ( NULL ) ); // Заполняем массив слуяайным образом for ( index = 0; index < N; index++ ) Array [ index ] = rand() %25 - 4; // Пусть максимальный элемент будет первый max = Array [ 0 ]; for ( index = 1; index < N; index++ ) // Если текущий элемент больше максимального, то... if ( Array [ index ] > max ) max = Array [ index ]; // Плиск номера последнего положительного for ( index = 0; index < N; index++ ) if ( Array [ index ] > 0 ) lastPositive = index; // Суммируем элементы от первого до послденего полоджительного for ( index = 0; index <= lastPositive; index++ ) sum += Array [ index ]; // Печать массива PrintArray ( Array ); // Печать данных printf ( "Max element of array: %d\n", max ); printf ( "Sum: %d\n", sum ); // Инициализируем отрезок, который нужно просмотреть int A = 0, B = 10, count = 0, j; index = 0; // Начнем с начала while ( index < N - count ) { // Если элемент находится из интеревала, то... if ( Array [ index ] >= A && Array [ index ] <= B ) { count += 1; // Увеличиваем счетчик таких элементов // Выполянем сдвиг элементов for ( j = index; j < N - count; j++ ) Array [ j ] = Array [ j + 1 ]; // Обнуляем текущий передвинутый элемент Array [ N - count ] = 0; // возврящаем позицию просмотра index--; } index++; } // Печать нового массива PrintArray ( Array ); } |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Одномерные массивы как строки; на ЯП Си, среда – Borland C++5.02 | L.M. | Помощь студентам | 3 | 04.07.2011 20:20 |
Одномерные массивы; на ЯП Си, среда – Borland C++5.02 | L.M. | Помощь студентам | 18 | 01.07.2011 17:07 |
Borland Pascal одномерные массивы | maksim-2804 | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 20.06.2011 16:15 |
Borland C++ & MSWord | prouser | Общие вопросы C/C++ | 0 | 26.04.2010 22:10 |
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент | LyaLya | Помощь студентам | 15 | 20.12.2009 14:12 |