как умножить целые числа на значения в массиве? - PullRequest
0 голосов
/ 06 сентября 2010

На самом деле я хотел получить абсолютные значения из массива, и я мог думать только о том, чтобы умножить значения в массиве на (-1), используя цикл 'if'.Но так ли это работает?как в:

for (i = 1 ; i <= 10 ; i++) {

    if(x[i]<1) {
        x[i] = (-1) * x[i];
    } else{}

    ratio[i] = (x[i]/fx[i]) * 0.5;
}

Я не уверен, что вы можете просто умножить целое число на массив ... или, по крайней мере, когда я делаю aboive, он не дает желаемых результатов, негативы все еще там..

И я понял, что это выражение, если (x [i] <1) не работает, надеюсь, кто-то может помочь!действительно ценю это ~ Если нет, есть ли другой способ?Спасибо! </p>

Ответы [ 3 ]

1 голос
/ 06 сентября 2010

Какой язык вы используете, очень важно знать здесь.

Если вы используете язык с фрагментами функционального программирования, вы можете сделать что-то вроде этого (psuedocode):

ratio = map(ratio, function(x) { return abs(x); }); 

Карта применяет функцию к каждому аргументу и создает новый массив из всех результатов.

Если у вас нет карты, то что-то вроде этого должно работать нормально:

for (int i=0;i<=10;i++){
    ratio = Math.abs(ratio[i]);
}

Предполагается, что Math.abs является библиотечной функцией для вычисления абсолютного значения.Точное местоположение Math.abs зависит от языка;например, в c ++ он находится в cmath.

Если вы не можете его найти, вы всегда можете написать его так:

function abs(int x){
    if (x < 0) return -x;
    return x;
} 
0 голосов
/ 06 сентября 2010

Ваш собственный код работает нормально, за исключением двух деталей:

  • Вероятно, цикл for должен идти от 0 до 9, а не от 1 до 10. По крайней мере, если языком является C (илибольшинство языков там).Поначалу это может показаться странным, но массивы начинают отсчитывать от 0. Следовательно, десятый элемент будет называться x[9].
  • . Оператор if, if(x[i]<1), должен сравнивать x[i] с 0 вместо 01, вот так: if(x[i]<0).В противном случае вы превратите значения, такие как 0,5, в -0,5.

Это должно заставить его работать.

В качестве небольшого бонуса вы также можете удалить else{} в целом.Он ничего не делает, и программа будет работать без него (опять же, если это C или большинство других языков).

0 голосов
/ 06 сентября 2010

В псевдокоде:

foreach value in the array:
    if array[value] < 0:
        array[value] = array[value] * -1

После этого каждое значение в массиве будет абсолютным, неотрицательным значением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...