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

Функция ввода матрицы - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 42, средняя оценка - 4.79
Mиxaил
 Аватар для Mиxaил
530 / 435 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
17.01.2010, 16:55     Функция ввода матрицы #1
Подскажите, как написать функцию ввода матрицы! а затем, как вызвать ее! Заранее благодарен, просто я тока учусь...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
17.01.2010, 17:09     Функция ввода матрицы #2
Какой язык: C или C++
Mиxaил
 Аватар для Mиxaил
530 / 435 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
17.01.2010, 17:14  [ТС]     Функция ввода матрицы #3
С++
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
17.01.2010, 17:28     Функция ввода матрицы #4
Сейчас сделаю

Добавлено через 13 минут
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
#include <iostream.h>
long InputMatrix(int *matrix ,int Height ,int Weight);
void main(){
    const int sHeight = 6;
    const int sWeight = 6;
    int mat[sHeight][sWeight] = {0};   //инициализация всей матрицы нулём
 
//Вызов функции 
InputMatrix(&mat[0][0],sHeight,sWeight);
   
 
 
}
 
long InputMatrix(int *matrix ,int Height ,int Weight){
    for(int i=0; i<Height;i++){
        for(int j=0;j<Weight;j++){
        cout<<"INPUT"<<' '<<i<<' '<<j<<'\t';
 
        cin>>matrix[i*Weight+j]; //ввод
        }
 
    }
 
 
return 0;
}
Mиxaил
 Аватар для Mиxaил
530 / 435 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
17.01.2010, 18:03  [ТС]     Функция ввода матрицы #5
благодарю!!! )))
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
18.01.2010, 01:34     Функция ввода матрицы #6
Цитата Сообщение от Genius Ignat Посмотреть сообщение
C++
1
int mat[sHeight][sWeight] = {0};  //инициализация всей матрицы нулём
Это не более чем инициализация первого элемента матрицы. Посмотри результат, допустим, при такой записи
C++
1
int mat[sHeight][sWeight] = {5};
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
18.01.2010, 11:17     Функция ввода матрицы #7
Цитата Сообщение от M128K145 Посмотреть сообщение
Это не более чем инициализация первого элемента матрицы. Посмотри результат, допустим, при такой записи
А если значений нехватает, то все последующие элементы сами 0 инициализируются. То есть в Вашем примере первый элемент будет 5, остальные 0. Соответственно
C
1
int arr[10] = { 0 };
создаст массив из десяти нулевых элементов типа int. Чтобы не быть голословным:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
 
int main(void){
    int arr[10] = { 0 }, i;
    for ( i = 0; i < 10; ++i ){
        if ( arr[i] ){
            printf("Shit happens!\n");
            break;
        }
    }
    if ( i == 10 )
        printf("Oh, yeah! All elements has zero values!\n");
    return 0;
}
Добавлено через 2 минуты
Цитата Сообщение от Genius Ignat Посмотреть сообщение
cin>>matrix[i*Weight+j]; //ввод
другое дело - зачем вот этот выпендрёж нужен? Чё не просто
C++
1
cin >> matrix[i][j];
?
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
18.01.2010, 13:03     Функция ввода матрицы #8
easybudda:
Когда мой комилятор видет вот такой параметр int *matrix,
Он не позволяет задавать смещение вот таким способом: [][],
Если функция шаблонная тогда такой способ прокатывает.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.01.2010, 13:58     Функция ввода матрицы
Еще ссылки по теме:

функция ввода C++
C++ функция ввода вместо cin
C++ Функция ввода / вывода

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

Или воспользуйтесь поиском по форуму:
Андрейка
410 / 214 / 24
Регистрация: 25.03.2009
Сообщений: 717
18.01.2010, 13:58     Функция ввода матрицы #9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
template <typename T, size_t N> void func(T (&arr)[N][N])
{
    for (size_t i = 0 ; i < N ; i++)
        for (size_t j = 0 ; j < N ; j++)
            std::cin >> arr[i][j];
}
 
int main()
{
    int arr[3][3];
    func(arr);
    return 0;
}
Yandex
Объявления
18.01.2010, 13:58     Функция ввода матрицы
Ответ Создать тему
Опции темы

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