Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/40: Рейтинг темы: голосов - 40, средняя оценка - 4.88
4 / 4 / 1
Регистрация: 07.12.2010
Сообщений: 143
1

Найти среднее геометрическое значение четных элементов массива

21.03.2011, 13:48. Показов 8092. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
1. Дан одномерный массив действительных чисел А(п). Найти сред¬нее геометрическое значение четных элементов массива.
есть программа недописанная посмотрите и исправьте ошибки...


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
28
29
30
31
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication74
{
    class Program
    {
        static void Main(string[] args)
        {
            const int n = 6;
            int[] a = new int[n];
            Random r = new Random();
            Console.WriteLine("Исходный массив:");
            for (int i = 0; i < n; ++i)
            {
                a[i] = r.Next(-15, 20);
                Console.Write("\t" + a[i]);
            }
            int Geom;
            int c=a[0];
            for (int i = 0; i < n; ++i)
                if (a[i] % 2 == 0) c=a[i] ;
            Console.WriteLine("\nvon" +c );
            Geom = Math.Pow(c, 1 / n);
            Console.ReadKey();
            
        }
    }
}
В программе есть ошибки одно из них : программа выводит только одно четное число на выбор, а мне нужно чтоб выводила все четные числа у меня нет идей....... и там формула для нахождения среднее геометрическое тоже посмотрите правильно ли будет работать............
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.03.2011, 13:48
Ответы с готовыми решениями:

Найти среднее геометрическое значение элементов матрицы
Дана матрица M*N. Найти среднее геометрическое зна¬чение элементов матрицы и выяснить, каких...

Найти среднее геометрическое элементов массива
Hi. Прошу помочь,самый легкий и рабочий вариант. Найти среднее геометрическое элементов массива A...

Найти среднее геометрическое значение элементов каждой строки матрицы
подскажите пожалуйста по задаче.. дан массив размерностью m,n необходимо найти среднее...

Найти среднее геометрическое элементов массива, некратных 3
Есть большая программа, одним из заданий является вывести среднее геометрическое элементов...

9
15 / 15 / 7
Регистрация: 18.01.2010
Сообщений: 24
21.03.2011, 13:57 2
C#
1
2
3
string c = ""
for (int i = 0; i < n; ++i)
  if (a[i] % 2 == 0) c+=a[i].ToString() + " " ;
1
4 / 4 / 1
Регистрация: 07.12.2010
Сообщений: 143
21.03.2011, 14:51  [ТС] 3
Спасибо..........

Добавлено через 1 минуту
А не подскажешь что делать со среднее геометрическое и немножко прокомментировать твои строки))........

Добавлено через 21 минуту
Цитата Сообщение от bagby Посмотреть сообщение
if (a[i] % 2 == 0) c+=a[i].ToString() + " " ;
Не могли бы вы мне объяснить эту строку и что делает +=.........

Добавлено через 29 минут
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
28
29
30
31
32
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication74
{
    class Program
    {
        static void Main(string[] args)
        {
            const int n = 6;
            int[] a = new int[n];
            Random r = new Random();
            Console.WriteLine("Исходный массив:");
            for (int i = 0; i < n; ++i)
            {
                a[i] = r.Next(-15, 20);
                Console.Write("\t" + a[i]);
            }
            int Geom;
            int c=1 ;
            for (int i = 0; i < n; ++i)
            if (a[i] % 2 == 0) c*=a[i] ;
            Console.WriteLine("\nc={0}", c);
            Geom = Math.Pow(c,1/n);
            Console.WriteLine("\nGeom={0}", Geom);
            Console.ReadKey();
            
        }
    }
}
Выдает ошибку в строке
C#
1
Geom = Math.Pow(c,1/n);
Не удается неявно преобразовать тип "double" в "int". Существует явное преобразование (возможно, пропущено приведение типов)4
0
220 / 143 / 35
Регистрация: 25.06.2010
Сообщений: 383
21.03.2011, 15:00 4
Цитата Сообщение от Gamach Посмотреть сообщение
Выдает ошибку в строке
C#
1
Geom = Math.Pow(c,1/n);
так объявите Geom в double.
1
4 / 4 / 1
Регистрация: 07.12.2010
Сообщений: 143
21.03.2011, 15:37  [ТС] 5
NiceGuyEddy спасибо)) Ну я и дурак все перепробовал кроме этого)).........

Добавлено через 29 минут
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
28
29
30
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication74
{
    class Program
    {
        static void Main(string[] args)
        {
            const int n = 6;
            int[] a = new int[n];
            Console.WriteLine("Исходный массив:");
            for (int i = 0; i < n; ++i)
            {
                Console.Write("\tVvedite a[{0}]", i);
                a[i] = Convert.ToInt32(Console.ReadLine());
            }
            int c=1 ;
            for (int i = 0; i < n; ++i)
            if (a[i] % 2 == 0) c*=a[i] ;
            Console.WriteLine("\nc={0}", c);
            double Geom =Math.Pow(c,1/2);
            Console.WriteLine("\nGeom="+ Geom);
            Console.ReadKey();
            
        }
    }
}
Почему эта программа Geom ищет не правильно?????
0
220 / 143 / 35
Регистрация: 25.06.2010
Сообщений: 383
21.03.2011, 16:09 6
Вот так попробуйте:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
            const int n = 3;
            int[] a = new int[n];
            Console.WriteLine("Исходный массив:");
            for (int i = 0; i < n; i++)
            {
                Console.Write("\tVvedite a[{0}]", i);
                a[i] = int.Parse(Console.ReadLine());
            }
            int c = 1;
            int count = 0;
            for (int i = 0; i < n; ++i)
            {
                if (a[i] % 2 == 0)
                {
                    c *= a[i];
                    count++;
                }
            }
            Console.WriteLine("c={0}", c);
            double Geom = Math.Pow(c, 1 / (double)count);
            Console.WriteLine("Geom=" + Geom);
            Console.ReadKey();
1
21 / 21 / 7
Регистрация: 22.02.2013
Сообщений: 237
14.08.2013, 20:35 7
C#
1
double Geom = Math.Pow(c, 1 / (double)count);
почему без (double) всегда 1 выдаёт?
0
261 / 236 / 161
Регистрация: 10.12.2011
Сообщений: 513
14.08.2013, 22:39 8
C#
1
double Geom = Math.Pow(c, 1 / (double)count);
почему без (double) всегда 1 выдаёт?
Потому, что метод возведения в степень Pow(double X, double Y) принимает вещественные значение. Это для справки.
А в вашем случае он просто неявным образом будет преобразовывать его к ближайшему целому числу( потому, что переменная count имеет целый тип ) себто нулю, а число в степени ноль у нас будет равно единице
Ну собственно поэтому и было явным образом преобразовано в вещественный тип.
1
21 / 21 / 7
Регистрация: 22.02.2013
Сообщений: 237
15.08.2013, 01:06 9
Спасибо, Леший!

Добавлено через 17 минут
Хотя погоди
Из int в double существует ведь неявное преобразование. И если count=10, почему его неявно не преобразует в 10?
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
15.08.2013, 02:22 10
BORIS_HERE, преобразование осуществляется только если нужно. ПО-умолчанию: не нужно.
0
15.08.2013, 02:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.08.2013, 02:22
Помогаю со студенческими работами здесь

Найти среднее арифметическое (среднее геометрическое) положительных элементов матрицы
Ребята, помогите пожалуйста сделать лабу, буду очень благодарен, а то сижу на паре, не знаю что и...

Найти среднее геометрическое четных элементов массива
Всем привет Помогите пожалуйста сделать задания: 1)найти среднее геометрическое четных элементов...

Найти среднее геометрическое четных элементов массива С (12), имеющих четный индекс
Ребят, всем привет! Нужна ваша помощь, не могу понять, где в коде допущена ошибка, посмотрите...

Найти среднее геометрическое четных элементов массива, имеющих нечетный индекс.
Найти среднее геометрическое четных элементов массива С(12), имеющих нечетный индекс. ...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru