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

одномерные массивы и указатели - C++

Восстановить пароль Регистрация
 
LovingDaisy
 Аватар для LovingDaisy
4 / 4 / 0
Регистрация: 28.12.2009
Сообщений: 18
10.01.2010, 23:29     одномерные массивы и указатели #1
помогите пожалуйста написать программу:
в одномерном массиве, состоящем из n элементов, вычислить:

1) номер минимального по модулю элемента массива;
2) сумму модулей элементов массива, расположенных после первого отрицательного элемента.

сжать массив, удалив из него все элементы, величина которых находится в интервале [a,b]. освободившиеся в конце массива элементы заполнить нулями.

спасибо!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2294 / 1664 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
10.01.2010, 23:39     одномерные массивы и указатели #2
1. Функция поиска индекса минимального по модулю элемента массива. Возвращает -1 в случае ошибки.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<assert.h>
 
int min(int* arr, int size)
{
  assert(arr);
  
  if(size == 0)
    return -1;
  
  int min = 0;
 
  for(int i = 0; i < size; ++i)
    if(abs(arr[i]) < abs(arr[min]))
      min = i;
 
  return min;
}
LovingDaisy
 Аватар для LovingDaisy
4 / 4 / 0
Регистрация: 28.12.2009
Сообщений: 18
11.01.2010, 00:08  [ТС]     одномерные массивы и указатели #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
#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <math.h>
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    srand( (unsigned)time( NULL ) );
    const int n=10;
    double a[n];
    int i,j,imin=0;
    for (i=0; i<n; i++)
    {
        a[i]=rand()%20-10;
        cout << a[i] << " " ;
        if (abs(a[i])<abs(a[imin]))
            imin=i;
 
    }
    a[i]=abs(a[i]);
    cout << a[i]<< endl;
    cout << "nomer minimal'nogo po modylu elementa = " << n << endl;
    return 0;
}
но он показывает заданное количество элементов (((
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2294 / 1664 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
11.01.2010, 00:15     одномерные массивы и указатели #4
Вместо
C++
1
cout << "nomer minimal'nogo po modylu elementa = " << т<< endl;
Поставь.
C++
1
cout << "nomer minimal'nogo po modylu elementa = " << imin<< endl;
Нужно разбираться в том что у тебя есть, а так далеко не уедешь.
LovingDaisy
 Аватар для LovingDaisy
4 / 4 / 0
Регистрация: 28.12.2009
Сообщений: 18
11.01.2010, 00:55  [ТС]     одномерные массивы и указатели #5
спасибо большое!
а что делать со второй частью задания??
Rififi
 Аватар для Rififi
2330 / 1045 / 43
Регистрация: 03.05.2009
Сообщений: 2,656
11.01.2010, 01:26     одномерные массивы и указатели #6
LovingDaisy,

2) сумму модулей элементов массива, расположенных после первого отрицательного элемента.

C++
1
2
3
4
5
6
7
8
9
10
int arr[] = {...}
const size_t N = sizeof(arr) / sizeof(arr[0]);
 
int* fn = std::find(arr, arr+N, std::bind2nd(std::less<int>(), 0));
if (fn == arr+N)
    throw std::runtime_error("no negatives");
 
int sum = 0;
for (int* p = ++fn; p != arr+N; ++p)
    sum += abs(*p);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.01.2010, 02:30     одномерные массивы и указатели
Еще ссылки по теме:

Одномерные массивы и указатели (Все отрицательные элементы увеличить на значение максимального элемента. Осуществить сдвиг) C++
C++ Одномерные массивы и указатели (найти количество элементов массива, равных 0, сумму элементов массива...)
Одномерные массивы + указатели (среднее арифметическое чисел, введенных с клавиатуры) C++

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

Или воспользуйтесь поиском по форуму:
LovingDaisy
 Аватар для LovingDaisy
4 / 4 / 0
Регистрация: 28.12.2009
Сообщений: 18
11.01.2010, 02:30  [ТС]     одномерные массивы и указатели #7
спасибо вам огромное =))))
Yandex
Объявления
11.01.2010, 02:30     одномерные массивы и указатели
Ответ Создать тему
Опции темы

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