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

Сформировать одномерный массив Х из элементов матрицы А... - C++

Восстановить пароль Регистрация
 
миклух
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 13
27.10.2011, 02:38     Сформировать одномерный массив Х из элементов матрицы А... #1
помогите пожалуйста! никак не получается сделать основную задачу. остановился на этом варианте, но все равно не получается - записываю матрицу в массив(все нормально), пытаюсь записать элементы для которых ближайшим целым является 1 из него в другой массив, а на вывод выдает чушь какую-то!

Сформировать одномерный массив Х из элементов матрицы А, для которых ближайшим целым является 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
32
33
34
35
36
int main()
{
    int w, y;
    int x=25;
    float b[25], c[x];
    float my[5][5]={-3.8,      0,     5.3,    4.5,     0.5,    
 
                     0.2,   -1.3,    0,     -8.5,     3.5,   
 
                     -1.1,     1.8,   5.1,   -8.2,     0.32, 
 
                        0,     -0.3,    0,     -1.28,   0.52, 
 
                        -0.3,     0.5,   1.8,   -7.3,     5.5}; 
 
    
     
    for(int i = 0; i < 5; i++){
    for(int j = 0; j < 5; j++){
    
                  b[i*5+j]=my[i][j];
                  
                  }
                  }
    for(w=0;w<25;w++){
    if((b[w] >= 0.5) && ((b[w] <= 1.5))) ++w;
     c[y]=b[w];
     }
                  
                  
             for(y=0;y<25;y++){
        cout<<" "<< c[y];
}
    getch();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2011, 02:38     Сформировать одномерный массив Х из элементов матрицы А...
Посмотрите здесь:

C++ Сформировать одномерный массив из максимальных элементов строк матрицы
Для матрицы А(4 строки ,4 столбца) сформировать одномерный массив B из 4 элементов C++
Сформировать одномерный массив из элементов, стоящих над главной диагональю матрицы K(m,m). Найти сумму элементов этого массива. C++
Сформировать одномерный массив из наименьших элементов строк матрицы C++
C++ Сформировать матрицы одномерный массив, состоящий из элементов, которые лежат в интервале (-3; 5]
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
27.10.2011, 03:02     Сформировать одномерный массив Х из элементов матрицы А... #2
А для чего вы матрицу my[5][5] сначала пытаетесь переписать в вектор b, а потом отдельно обрабатываете вектор b в поисках нужных вам элементов. думаю это можно делать в процессе одной обработки.
Скажите пожалуйста что такое элемент для которого ближайшим целым является единица. судя по вашему коду это то что больше или равно 0.5 и меньше или равно 1.5 . почему например 0.2 не подходит.
миклух
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 13
27.10.2011, 03:11  [ТС]     Сформировать одномерный массив Х из элементов матрицы А... #3
Цитата Сообщение от greeezz Посмотреть сообщение
А для чего вы матрицу my[5][5] сначала пытаетесь переписать в вектор b, а потом отдельно обрабатываете вектор b в поисках нужных вам элементов. думаю это можно делать в процессе одной обработки.
Скажите пожалуйста что такое элемент для которого ближайшим целым является единица. судя по вашему коду это то что больше или равно 0.5 и меньше или равно 1.5 . почему например 0.2 не подходит.
1.От бессилия уже.
2.ну округляем же! например 1,6 уже к 2 округляем, в то время, как от 1.1 до 1.5 можно к 1 округлить - значит ближайшее 1. гм, тогда вместо 0.5 будет 0
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
27.10.2011, 03:25     Сформировать одномерный массив Х из элементов матрицы А... #4
Цитата Сообщение от миклух Посмотреть сообщение
ну округляем же!
ок. понял. надо было убедиться что я верно понимаю формулировку.
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
#include "stdafx.h"
#include <iostream>
 
using std::cin;
using std::cout;
using std::endl;
 
int main()
{
    const int size = 25;
    int iter = 0;
    float b[size];
    float my[5][5]={-3.8,      0,     5.3,    4.5,     0.5,    
 
        0.2,   -1.3,    0,     -8.5,     3.5,   
 
        -1.1,     1.8,   5.1,   -8.2,     0.32, 
 
        0,     -0.3,    0,     -1.28,   0.52, 
 
        -0.3,     0.5,   1.8,   -7.3,     5.5}; 
 
 
    for(int i = 0; i<5; ++i){
        for(int j = 0; j<5; ++j){
            if(my[i][j]>=0.5 && my[i][j]<1.5){
                b[iter] = my[i][j];
                iter++;
            }
        }
    }
 
    for(int k = 0; k < iter; ++k){
        cout << b[k] << " ";
    }
    cout << endl;
    system("pause");
    return 0;
}
тут не учитываются отрицательные числа. т.е. числа округляемые до -1.

p.s. не сложно доработать чтобы найти минимальный элемент массива.
миклух
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 13
27.10.2011, 03:37  [ТС]     Сформировать одномерный массив Х из элементов матрицы А... #5
Цитата Сообщение от greeezz Посмотреть сообщение
ок. понял. надо было убедиться что я верно понимаю формулировку.

тут не учитываются отрицательные числа. т.е. числа округляемые до -1.

p.s. не сложно доработать чтобы найти минимальный элемент массива.
спасибо огромное!! понял свою ошибку!
Yandex
Объявления
27.10.2011, 03:37     Сформировать одномерный массив Х из элементов матрицы А...
Ответ Создать тему
Опции темы

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