Из-за этой своей тревожной улыбки Гагарин стал первым космонавтом.
Просьба о помощи) Есть программа по одномерным массивам. вся сложность в том. что при компилляции она упорно выдает мне :
error C2665: cos: ни одна из 3 перегрузок не может преобразовать все типы аргументов. Все остальное вроде верно. Само задание звучит так:"Дан одномерный массив х(15). Вычислить среднее арифметическое элементов, удовлетворяющих условию cos(xi)<0"
Прога под катом :)
читать дальше

@темы: Вопрос, C++

Комментарии
20.12.2013 в 16:05

Миру - мир. А Вам - пломбир!
Обрамите код в bb-код CODE, а то парсер многое съел, видимо.
20.12.2013 в 16:13

Из-за этой своей тревожной улыбки Гагарин стал первым космонавтом.
Скептичный циник, блин, простите, не совсем поняла о чем вы. глупый олень я
Но может так будет лучше pastebin.com/DtyGvtTK
20.12.2013 в 16:29

Бредоmaker.
Вы считаете cos от x. Я бы тоже сломалась на месте компилятора :)
Надо от x[i]. И добавьте фигурные скобки во втором цикле, а лучше в обоих.
S должно быть проинициализированно вне цикла. Оно не должно быть типа int.
И Ваш код не считает среднее арифметическое: нужно отдельно считать сумму, кол-во элементов в цикле, удовлетворяющих условию. Потом после цикла поделить одно на другое.
20.12.2013 в 18:51

Миру - мир. А Вам - пломбир!
Предыдущий комментатор всё правильно написала уже (:
Но я, будучи занудой, добавлю объяснений.
1. Строки 18-21. Си это не питон (: Если фигурных скобок у цикла нет, то в цикл входит только первая строка. Остальные - вне цикла. Хороший тон - всегда писать скобки для тела цикла. К тому же, так и сами не запутаетесь.
2. Среднее арифметическое это сумма всех элементов, поделённая на их количество. То есть, нужно обойти весь массив и увеличивать некоторую переменную на текущий элемент. А уже затем результат поделить на длину массива.
3. Функция cos() принимает численные типы в виде параметра - то есть, int, float, double и подобные. Вы же передаёте ссылку на массив (точнее, на его первый элемент). Для доступа к элементу массива используйте запись arr[index], где arr - массив, а index - индекс нужного элемента в массиве.
4. Каждый проход цикла s равняется нулю. Бывает и такая нужда, но в данном случае его нужно инициализировать вне цикла.
5. Так как результатом деления является тип float, а не int, то и s должен быть типа float.
20.12.2013 в 22:06

Из-за этой своей тревожной улыбки Гагарин стал первым космонавтом.
Скептичный циник,
Для доступа к элементу массива используйте запись arr[index], где arr - массив, а index - индекс нужного элемента в массиве Вот это я не очень поняла. Можно на примере?
20.12.2013 в 23:20

Миру - мир. А Вам - пломбир!

Выведет 42.
В этом примере arr - массив элементов типа int (целые числа).
Во второй строке выводится элемент массива под номером 2. Нумерация всегда начинается с ноля поэтому второй номер - это третий элемент от начала.

Компилятор эту запись читает как "найти адрес, отсчитать от него два раза по четыре байта и затем прочесть четыре байта". Если int равен четырём байтам.