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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.04.2014, 17:58   #1
ilovejamijami
Новичок
Джуниор
 
Регистрация: 28.04.2014
Сообщений: 1
Восклицание Одномерные и двумерные массивы.

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

#
Код:
include "stdafx.h"
#include "iostream"
#include "math.h"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{  setlocale (0,"rus");
        int i,n, sum,kol,indmin=0;
		kol = 0; sum = 0;
        cout<<"Введите кол-во элементов массива:\n";
        cin>>n;
        float *a=new float [n];
        cout<<"Введите 1 элемент массива: ";
        cin>>a[0];
		{if (a[0]<0) kol = kol + 1;}
        float min=a[0];
		for (i=2; i<=n; i++) 
        {       
                cout<<"Введите "<<i<<" элемент массива: ";
				cin>>a[i];
		if (a[i]<0) kol = kol + 1;}
		{		cout<<"Кол-во отрицательных элементов:"<<kol<<"\n"<<kol;}
		for (i=2; i<=n; i++) 
		{
		if (fabs(a[i])<fabs(min)) min = fabs(a[i]);
		}
			{
			cout<<"Минимальное:"<<min<<"\n"<<min;}

		for(i = 0; i < indmin; i++)
		{
			 if(a[i] < min)
			{
            min = a[i];
            indmin = i;
			}
		}
			for(i = 0; i < indmin; i++) sum += a[i];
		cout << "Сумма = " << sum << endl;
		system("pause");
	
		
		return 0;


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(это кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 28.04.2014 в 18:25.
ilovejamijami вне форума Ответить с цитированием
Старый 28.04.2014, 20:00   #2
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

У меня получилось что-то вроде этого. Пища для размышлений.

Код:
#include <iostream>
#include <cstdlib>
#include <cmath>

using namespace std;

const int N = 10;

void BubbleSort(double []);

int main() {
	double massiv[N] = {1.2, 2.0, 4.3, -0.3, -2.1, 3.8, 2.4, -3.9, 3.3, 5.7};
	int count = 0;			// Отрицательные элементы массива (количество)
	double minMod = fabs(massiv[0]);// Минимальный модуль
	int minIndex = 0;		// Индекс минимального по модулю
	double sumMod = 0.0;	        // Сумма модулей
	

	setlocale(0, "rus");
	
	// Вывод массива
	cout << "\n Исходный массив:" << endl;
	for(int i = 0; i < N; i++) {
		cout << " [" << massiv[i] << "]";
		if(massiv[i] < 0) // Нахождение отрицательных чисел
			count++;
	}

	// Нахождение минимального по модули числа
	for(int i = 1; i < N; i++) {
		if(fabs(massiv[i]) < minMod) {
			minMod = fabs(massiv[i]);
			minIndex = i;
		}
	}
		
	// Суммирование модулей элементов после минимального модуля
	for(int i = minIndex+1; i < N; i++) {
		sumMod += fabs(massiv[i]);
	}
	
	// Замена всех отрицательных элементов 'квадратами'
	for(int i = 0; i < N; i++) {
		if(massiv[i] < 0)
			massiv[i] = pow(massiv[i], 2);
	}
	
	BubbleSort(massiv);	// Сортировка
	
	cout << endl;
	cout << "\n 1.Отрицательных элементов: " << count;
	cout << "\n 2.Сумма модулей: " << sumMod << endl;
	// Вывод результирующего массива
	cout << "\n 3.Массив после сортировки:" << endl;
	for(int i = 0; i < N; i++) {
		cout << " [" << massiv[i] << "]";
	}
	cout << endl;
	return 0;
}

// Сортировка массива
void BubbleSort(double massiv[N]) {
	for(int i = N-1; i > 0; i--) {
	bool flag = false;
	for(int j = 0; j < i; j++) {
		if(massiv[j] > massiv[j+1]) {
			double temp = massiv[j];
			massiv[j] = massiv[j+1];
			massiv[j+1] = temp;
			flag = true;
			}
		}
	if(!flag)	// Если перестановок не было, завершить сортировку
		break;
	}
	return;
}
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++.Одномерные и двумерные массивы. andreygorod Помощь студентам 0 14.05.2011 23:58
Одномерные и двумерные массивы Люба19 Помощь студентам 1 13.05.2011 20:15
Одномерные двумерные массивы. Narim Общие вопросы C/C++ 2 14.03.2011 12:32
Одномерные и двумерные массивы Woxx Паскаль, Turbo Pascal, PascalABC.NET 11 29.08.2010 14:57