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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
eklerka2010
0 / 0 / 0
Регистрация: 22.11.2011
Сообщений: 20
#1

Первый элемент каждого четного столбца заменить средним арифметическим - C++

12.12.2011, 22:35. Просмотров 653. Ответов 4
Метки нет (Все метки)

помогите решить пожалуйста, завтра модуль!!!!=)
Задана матрица A(n,n). Первый элемент каждого четного столбца заменить
средним арифметическим среди простых чисел этого столбца, первый
элемент каждого нечетного столбца заменить средним арифметическим
среди составных чисел этого столбца
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2011, 22:35     Первый элемент каждого четного столбца заменить средним арифметическим
Посмотрите здесь:

C++ В прямоугольной матрице каждый нулевой элемент заменить средним арифметическим значением ненулевых элементов той строки
C++ В массиве каждый элемент, равный нулю, заменить средним арифметическим всех элементов
Заменить в каждом массиве максимальный элемент средним арифметическим положительных элементов (если оно существует) соответствующего массива C++
C++ Заменить максимальный элемент массива средним арифметическим положительных элементов массива
C++ Заменить максимальный элемент в матрице, средним арифметическим элементов строки, в которой находится максимальный элемент
C++ Определить для каждого четного столбца максимальный элемент
C++ В прямоугольной матрице каждый нулевой элемент заменить средним арифметическим значением
Задана матрица A(n,n). Первый элемент каждого четного столбца заменить суммой простых чисел этого столбца, пер C++
Третий положительный элемент массива заменить средним арифметическим положительных элементов C++
Заменить первый элемент массива средним арифметическим максимального и минимального элементов C++
C++ Заменить последний элемент массива средним арифметическим максимального и минимального элементов
Заменить максимальный элемент массива средним арифметическим элементов, находящихся на нечётных позициях C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
12.12.2011, 23:03     Первый элемент каждого четного столбца заменить средним арифметическим #2
eklerka2010, С/С++???
eklerka2010
0 / 0 / 0
Регистрация: 22.11.2011
Сообщений: 20
12.12.2011, 23:08  [ТС]     Первый элемент каждого четного столбца заменить средним арифметическим #3
ага, с++
-=ЮрА=-
Заблокирован
Автор FAQ
12.12.2011, 23:21     Первый элемент каждого четного столбца заменить средним арифметическим #4
eklerka2010, я вижу это так
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include <iostream>
#include <iomanip>
using namespace std;
 
bool isNumberSimple(int num)
{
    bool isSimple = true;
    for(int i = 2; i <= 9 && isSimple; i++)
    {
        if(i != num)
        if(num % i == 0)
            isSimple = false;
    }
    return isSimple;
}
 
double midAlgebraic(int col, int n, int ** arr, bool isSimple)
{
    double mid = 0;
    for(int i = 0, nCount = 0; i < n; i++)
    {
        if(isNumberSimple(arr[i][col]))
        {
            if(isSimple)
            {
                mid += arr[i][col];
                nCount++;
            }
        }
        else
        {
            if(!isSimple)
            {
                mid += arr[i][col];
                nCount++;
            }
        }
    }
    if(0 < nCount)
        mid = mid/1.0*nCount;
    return mid;
}
 
int main()
{
    int i, j, n;
    cout<<"Enter n: ";cin>>n;
    int ** A = new int * [n];
    cout<<"Enter matrix A :\n";
    for(i = 0; i < n; i++)
    {
        A[i] = new int[n];
        for(j = 0; j < n; j++)
        {
            cout<<"A["<<i<<"]["<<j<<"] = ";
            cin>>A[i][j];
        }
    }
    for(j = 0; j < n; j++)
    {
        if(j % 2 == 0)
            A[0][j] = midAlgebraic(j, n, A, true);
        else
            A[0][j] = midAlgebraic(j, n, A, false);
    }
    cout<<"Matrix A after transforming\n";
    for(i = 0; i < n; i++)
    {
        for(j = 0; j < n; j++)
            cout<<setw(3)<<A[i][j]<<" ";
        cout<<endl;
    }
    //Память не чищу ОС это сделает сама
    system("pause");
    return 0;
}
Миниатюры
Первый элемент каждого четного столбца заменить средним арифметическим  
-=ЮрА=-
Заблокирован
Автор FAQ
12.12.2011, 23:30     Первый элемент каждого четного столбца заменить средним арифметическим #5
eklerka2010, тестируя нашёл огрех
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
if(0 < nCount)
* * * * * * * * mid = mid/1.0*nCount;
вот так запишите
C++
1
2
if(0 < nCount)
        mid = mid/(1.0*nCount);
тогда корректно работает
и здесь добавьте, тогда смотреть удобней
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
for(i = 0; i < n; i++)
    {
        A[i] = new int[n];
        for(j = 0; j < n; j++)
        {
            cout<<"A["<<i<<"]["<<j<<"] = ";
            cin>>A[i][j];
        }
    }
//////////////////////////////////////////////////////////////
    cout<<"Matrix A after input\n";
    for(i = 0; i < n; i++)
    {
        for(j = 0; j < n; j++)
            cout<<setw(3)<<A[i][j]<<" ";
        cout<<endl;
    }
/////////////////////////////////////////////////////////////
    for(j = 0; j < n; j++)
    {
        if(j % 2 == 0)
            A[0][j] = midAlgebraic(j, n, A, true);
        else
            A[0][j] = midAlgebraic(j, n, A, false);
    }
Миниатюры
Первый элемент каждого четного столбца заменить средним арифметическим  
Yandex
Объявления
12.12.2011, 23:30     Первый элемент каждого четного столбца заменить средним арифметическим
Ответ Создать тему
Опции темы

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