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

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

Войти
Регистрация
Восстановить пароль
 
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,230
Завершенные тесты: 1
#1

матрица и массив - C++

06.12.2010, 19:50. Просмотров 291. Ответов 6
Метки нет (Все метки)

дана квадратная матрица с размером n и массив с тем же размером.
Найти в каждой строке матрицы максимальный элемент,и поместить его в массив.
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
#include <iostream>
#include <time.h>
#include <windows.h>
#include <math.h>
#include <D:\\alex\\head-files\\mathem.h>
#include <D:\\alex\\head-files\\kurs.h>
#include <D:\\alex\\head-files\\factorial.h>
using namespace std;
const int n=5;
 
void inp(int x[][n]);
void calc(int x[][n],int y[]);
void out(int x[][n],int y[]);
 
void main()
{   srand(time(0));
    int x[n][n];
    int y[n];
    inp(x);
    calc(x,y);
    out(x,y);
 
}
 
void inp(int x[][n])
{
    for(int i=0;i<n;i++)
        for(int j=0;j<n;j++)
            x[i][j]=rand()%10+1;
}
 
void calc(int x[][n],int y[])
{
        int max=x[0][0];
        for(int i=0;i<n;i++)
        for(int j=0;j<n;j++)
            if(max<x[i][j])
            {
            max=x[i][j];
            y[i]=max;
            }
                
}
 
void out(int x[][n],int y[])
{
        for(int i=0;i<n;i++)
        {
        for(int j=0;j<n;j++)
            cout<<x[i][j]<<" ";
        cout<<endl;
        }
        
 
        cout<<endl;
        for(int i=0;i<n;i++)
            cout<<y[i]<<" ";
        cout<<endl;
}

Первые две максимальные элементы выводит нормально...а дальше следуют уму не уместные числа.

Добавлено через 1 минуту
Хотя нет...Теперь и первые два числа тоже не понятные.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2010, 19:50     матрица и массив
Посмотрите здесь:

Задан массив и матрица, получить другой массив по правилу - C++
Здравствуйте,Помогите решить пожалуйста:swoon: Буду очень благодарен) Задан массив B=\left и матрица ...

массив и матрица - C++
Всем привет! Если кто знает как решить то помогите потому что у меня не получается сделать самому(я пробовал) Условие: Дана...

Массив и матрица - C++
Вот такие задачи: 1) В одномерном массиве, состоящем из n целых элементов опеределить: - сумму четных элементов массива -...

Массив(Матрица). - C++
Характеристикой столбца назовем наибольшее количество идущих подряд отрицательных элементов.Вывести максимальное количество элементов в...

Массив и матрица - C++
Дано матрицу целых чисел А (n * n). Определить является ли она симметричной относительно главной диагонали. Дан массив слов....

C++ Матрица. Динамический массив - C++
Дана целочисленная прямоугольная таблица размером М х Н. Поменять местами столбцы, содержащие минимальное и максимальное количество...

Двумерный массив (матрица) - C++
Задание: Коэффициенты системы линейных уравнений заданы в виде прямоугольной матрицы. С помощью допустимых преобразований привести...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Евгений М.
1035 / 976 / 54
Регистрация: 28.02.2010
Сообщений: 2,828
Завершенные тесты: 2
06.12.2010, 20:13     матрица и массив #2
Подправил.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
void calc(int x[][n],int y[])
{
    int max;
    for(int i=0;i<n;i++)
    {
        max=x[i][0];
        // Цикл находит максимальное значение
        for(int j=1;j<n;j++)
        {
            if(max<x[i][j])
                max=x[i][j];
        }
        y[i]=max;
    }
}
При исполнении Вашего кода были такие моменты.
Цикл по i. y[i] пока имеет фиг знает какое значение. В цикле по j получилось так, то самое условие не выполнилось (это когда первый элемент строки/столбца был максимальным). y[i] - так и остался непредсказуемым.
К тому-же в предыдущем коде значение max у Вас переносился на следующий цикл по i.
lemegeton
2918 / 1347 / 134
Регистрация: 29.11.2010
Сообщений: 2,721
06.12.2010, 20:13     матрица и массив #3
Дело в этой функции.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void calc(int x[][n],int y[])
{
                int max=x[0][0];
                for(int i=0;i<n;i++)
                {
                for(int j=0;j<n;j++)
                        if(max<x[i][j])
                        {
                        max=x[i][j];
                        y[i]=max;
                        }
                }               
}
У тебя max не изменяется при переходе между строками, да и присвоение y[i]=max происходит не всегда. Пройдись дебагом, сразу увидишь.

Бессмысленная переменная max.
C++
1
2
3
4
5
6
7
8
9
10
void calc(int x[][n],int y[])
{
    for(int i=0;i<n;i++)
    {
        y[i] = x[i][0];
        for(int j=1;j<n;j++)
            if(y[i]<x[i][j])
                y[i]=x[i][j];
    }               
}
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,230
Завершенные тесты: 1
06.12.2010, 20:14  [ТС]     матрица и массив #4
Цитата Сообщение от Евгений М. Посмотреть сообщение
int j=1
Почему здесь 1?
Евгений М.
1035 / 976 / 54
Регистрация: 28.02.2010
Сообщений: 2,828
Завершенные тесты: 2
06.12.2010, 20:16     матрица и массив #5
Цитата Сообщение от ^Tecktonik_KiLLeR Посмотреть сообщение
Почему здесь 1?
Нет смысла сравнивать x[i][0] с x[i][0]. Поэтому пусть начнет со элемента с вторым индексом равным 1, а не 0.
lemegeton
2918 / 1347 / 134
Регистрация: 29.11.2010
Сообщений: 2,721
06.12.2010, 20:17     матрица и массив #6
Потому что бессмысленно проверять нулевой элемент. Он предполагается за максимальный до начала проверки остальных элементов.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.12.2010, 20:19     матрица и массив
Еще ссылки по теме:

Двумерный массив (матрица) - C++
Здравствуйте, ребята. В программе нужно поменять местами максимальный и минимальный элементы в каждом столбце матрицы. Основной код я...

Двумерный массив-матрица - C++
помогите,пожалуйста. Нужно составить программу, которая выводит на экран квадратную матрицу A размером n*n . Входные данные: n – порядок...

Многомерный массив (матрица) на С++ - C++
Матрица K(m,m) состоит из нулей и единиц. Найти в ней номера строк и столбцов, не содержащих единицы, либо сообщить, что таких нет.

двумерный массив ( матрица ) - C++
Для заданной матрицы размером 8х8. Найдите: 1). Такие j i k, когда j -я строка матрицы совпадает из k -м столбиком 2). Сумму элементов...

Двумерный массив (квадратная матрица) - C++ - C++
Помогите Вот задача 6. В квадратной матрице найти С6х6 сумму элементов, находящихся по периметру.


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

Или воспользуйтесь поиском по форуму:
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,230
Завершенные тесты: 1
06.12.2010, 20:19  [ТС]     матрица и массив #7
Да да понял,спасибо всем
Yandex
Объявления
06.12.2010, 20:19     матрица и массив
Ответ Создать тему
Опции темы

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