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

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

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

Заменить все нули средним арифметическим. 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     Первый элемент каждого четного столбца заменить средним арифметическим
Ответ Создать тему
Опции темы

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