PDA

Показать полную графическую версию : Помогите решить задачу или подтолкните в нужную сторону (МАССИВЫ)


gramatchikof@vk
14-11-2012, 19:55
Задана последовательность значений элементов некоторого массива до и после преобразования по некоторому правилу. Определите алгоритм преобразования и напишите программу, которая:
1) формирует массив из заданного количества случайных целых чисел в заданном диапазоне и выводит элементы массива на экран;
2) по определенному вами алгоритму преобразовывает этот массив и выводит на экран элементы преобразованного массива.
3) производит заданные вычисления (рекомендуется оформить в виде отдельной функции) и выводит результат на экран.

Массив M = (5, –5, 9, –2, 14, –7, 0) преобразован к виду M = (5, 0, 9, 0, 14, 0, 0). Размер массива M - 22 элемента из диапазона [–47,47]. Вычислить сумму тех элементов преобразованного массива, которые находятся в диапазоне [–16, 6].


Заранее благодарен!

lxa85
14-11-2012, 20:59
Посмотреть способы задания массивов в C++
На основе поэлементного сравнения массивов сделать предположение о функции преобразования
Рассмотреть способы вывода массива на экран
Посмотреть способы передачи аргументов (массива) функции вывода массива на экран
Найти понятие "переменная-аккумулятор".
Написать условие суммирования для чисел в диапазоне [-16:6]. Заодно уточнить, чем [-16:6] отличается от (-16:6).

Даже не знаю, чем еще помочь.

gramatchikof@vk
21-11-2012, 19:50
Вычислить сумму тех элементов преобразованного массива, которые находятся в диапазоне [–16, 6]. остался вот этот момент

lxa85
21-11-2012, 21:59
Цикл, счетный цикл, цикл с параметром, условиях выхода из цикла, цикл ДО, цикл ПОКА.
Логические операции И, ИЛИ, НЕ. Истинность, ложность выражения в операторе выбора.
Найти понятие "переменная-аккумулятор". Уточнить, чем [-16:6] отличается от (-16:6).

gramatchikof@vk
22-11-2012, 18:22
не могу разобраться, уже все перепробовал

#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <iostream>
#include <time.h>
const int N = 22;
int random (int N) { return rand()%N; }
main()
{ system("CLS");
int i, A[N], a = -47, b = 47, sum;
for ( i = 0; i < N; i ++ )
A[i] = random(b-a+1) + a;
printf("\nmassiv1\n");
for ( i = 0; i < N; i ++ )
printf("%4d",A[i]);
printf("\nmassiv2\n");
for ( i = 0; i < N; i ++ )
{
if ( A[i]<0) A[i]=0;
}
A[i] = random(b-a+1) + a;
for ( i = 0; i < N; i ++ )
printf("%4d",A[i]);
printf("\nsum\n");

printf("%4d",A[i]);
for ( i = 0; i < N; i ++ )
sum=0;
for(i=0;i<N;i++)
{
sum+=A[i];
}
printf("%4d",sum);
system("PAUSE");
return 0;
}

считает сумму всех элементов преобразованного массива, а как сделать чтобы из диапазона {-16,6}

ferget
23-11-2012, 02:41
for(i=0;i<N;i++)
{
if(A[i]>-16 && A[i]<6)
sum+=A[i];
}

lxa85
23-11-2012, 08:22
Чуть чуть поправлю ferget.

for(i=0;i<N;i++)
{
if(A[i]=>-16 && A[i]=<6)
sum+=A[i];
}




© OSzone.net 2001-2012