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

Пару вопросов насчёт ввода массива. - C++

Восстановить пароль Регистрация
 
nicenice
3 / 3 / 0
Регистрация: 22.11.2011
Сообщений: 168
10.12.2011, 21:19     Пару вопросов насчёт ввода массива. #1
в общем так: действия над матрицами

задаю константы, например N=10, M=10, K=10, L=10
надо ввести два массива произвольного размера (до 10 тк такие константы), например пользователь захочет ввести матрицу размера 4x6 и 6x9

Я не знаю как сделать так, чтобы пользователь мог вводить произвольный массив, у меня так, если задам константу 10x10 я буду обязан ввозить большую матрицу со 100 элементами, если задав константу 8x4 я буду обязан... ну и так далее, понимаете? Мне надо что бы пользователь мог вводить любой массив размером до 10x10
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2011, 21:19     Пару вопросов насчёт ввода массива.
Посмотрите здесь:

обясните пару вопросов о строках C++
C++ Ifstream и пару вопросов
Пару вопросов по двумерным массивам C++
Ввод вывод из/в файлы(и еще пару вопросов) C++
C++ пару вопросов по с++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
edward_jonson
 Аватар для edward_jonson
157 / 157 / 25
Регистрация: 23.02.2011
Сообщений: 388
10.12.2011, 21:56     Пару вопросов насчёт ввода массива. #2
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
#include <stdio.h>
#include <conio.h>
#include <alloc.h>
void main()
{
    bool correct=false;
    int i,j,N,M,K,L,n,m,k,l,**arrOne,**arrTwo;
   printf ("Enter N,M,K,L:\n");
   scanf ("%d%d%d%d",&N,&M,&K,&L);
   while(!correct)
   {
      printf ("Enter size of first array:\n");
      scanf ("%d%d",&n,&m);
      printf ("Enter size of second array:\n");
      scanf("%d%d",&k,&l);
      if(n<=N && m<=M && k<=K && l<=L)
      {
         arrOne=(int**)malloc(n*sizeof(int*));
         arrTwo=(int**)malloc(k*sizeof(int*));
         for(i=0;i<n;i++) arrOne[i]=(int*)malloc(m*sizeof(int));
         for(i=0;i<k;i++) arrTwo[i]=(int*)malloc(l*sizeof(int));
         correct=true;
      }
      else printf("Not available sizes, try again!\n");
   }
      if(correct)
      {
        printf ("Fill first array:\n");
        for (i=0;i<n;i++)
            for (j=0;j<m;j++)
            scanf("%d",&arrOne[i][j]);
         printf ("Fill second array:\n");
         for(i=0;i<k;i++)
            for(j=0;j<l;j++)
            scanf("%d",&arrTwo[i][j]);
      }
      getch();
}
nicenice
3 / 3 / 0
Регистрация: 22.11.2011
Сообщений: 168
11.12.2011, 11:55  [ТС]     Пару вопросов насчёт ввода массива. #3
если честно ничего не понял, всё очень сложно...
а можно ли как по проще? без всяких указателей?
я например даже третью библиотеку в первый раз вижу

и почему там не вводится массив?

Добавлено через 13 часов 46 минут
Ребят срочно надо!
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
11.12.2011, 12:07     Пару вопросов насчёт ввода массива. #4
nicenice,
C
1
2
3
4
5
6
7
8
9
const int SIZE = 10;
int matr[SIZE][SIZE];
int i, j, rows, columns;
 
scanf ("%d%d", &rows, &columns);
 
for ( i = 0 ; i < rows ; i++)
       for ( j = 0 ; j < columns ; j++)
            scannf ("%d", &matr[i][j]);
nicenice
3 / 3 / 0
Регистрация: 22.11.2011
Сообщений: 168
11.12.2011, 12:24  [ТС]     Пару вопросов насчёт ввода массива. #5
go, огромное спасибо! Реально выручил! Как же я сам не додумался...
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
11.12.2011, 12:29     Пару вопросов насчёт ввода массива. #6
nicenice, только я бы еще сделал проверку, чтобы rows columns не были больше десяти
Yandex
Объявления
11.12.2011, 12:29     Пару вопросов насчёт ввода массива.
Ответ Создать тему
Опции темы

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