Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.67/27: Рейтинг темы: голосов - 27, средняя оценка - 4.67
level9626
9 / 9 / 2
Регистрация: 23.09.2012
Сообщений: 150
1

Двумерный массив: организация ввода и вывода элементов

21.10.2012, 17:57. Просмотров 4885. Ответов 29
Метки нет (Все метки)

Добрый день. Мне нужно с клавиатуры ввести количество столбцов и количество строк массива. Минимум массив должен быть 2х2. Потом вводим с клавы первый елемент первой строки. потом второй елемент 1 строки. ну и первый ел. 2 строки и 2 ел. 2 строки. Ну и вывести массив на экран.

Получилось только ввести с клавы кол. столбцов и строк. и задать условие, что они должны быть больше двух. А как вот дальше вывести на экран:
Введите 1 ел. 1 строки:
Введите 2 ел. 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
# include <stdio.h>
# include <math.h>
 
int main()
{
 int x,y;
printf("Vvedute koluchestvo stpok: ");
scanf("%d", &x);
printf("Vvedite koluchesto stolbcov: ");
scanf("%d", &y);
 
if(x<2 || y<2)
{
 printf("Oshubka. X i Y doljnu but' ne men'she 2");
}
else
{
 int a[x][y];
 for (int i=0; i<=x;i++)
 {
  printf("Vvedute %d element %d stpoku: \n", i+1);
  scanf("%d", &a[i]);
 } 
}
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.10.2012, 17:57
Ответы с готовыми решениями:

Организация асинхронного ввода/вывода
Доброе время суток. Подскажите, как организовать ассинхронный ввод в СИ....

Ввести двумерный массив 3х3 элементов, найти произведение элементов массива
Ввести двумерный массив 3х3 элементов, найти произведение элементов массива.

Функции ввода/вывода двумерного массива - Тип элементов массива неполный
Доброго времени суток! // Автоматический ввод двумерного массива void...

Организация вывода текста в прямоугольную область экрана
организация вывода текста в прямоугольную область экрана,координаты левого...

Добавление элементов (строки или столбца) в двумерный массив
Добрый день! В данном коде возможность добавления элементов (строки или...

29
akk
44 / 44 / 17
Регистрация: 28.01.2012
Сообщений: 341
02.11.2012, 22:51 21
Цитата Сообщение от level9626 Посмотреть сообщение
как этот же код дополнить таким образом , чтобы меняло еще и 3 с 4 стоблики
В 24 строчке кода убрать условие j==0
1
arsik_h
0 / 0 / 1
Регистрация: 03.11.2012
Сообщений: 3
03.11.2012, 01:25 22
Цитата Сообщение от fanatdebian Посмотреть сообщение
int s[str][stb];
а что это за динамическое объявление массива, да еще посреди кода? У меня не работает.
0
level9626
9 / 9 / 2
Регистрация: 23.09.2012
Сообщений: 150
03.11.2012, 03:30  [ТС] 23
Цитата Сообщение от akk Посмотреть сообщение
В 24 строчке кода убрать условие j==0
некорректно работает в этом случае.
0
akk
44 / 44 / 17
Регистрация: 28.01.2012
Сообщений: 341
03.11.2012, 20:24 24
level9626, попробуйте так
C
1
if((j==0||j%2==0)&&stb%2==0)
Этот код будет менять местами если столбцов четное количество, если нечетное, то матрица будет прежней.
1
level9626
9 / 9 / 2
Регистрация: 23.09.2012
Сообщений: 150
03.11.2012, 21:08  [ТС] 25
о, спасибо. а если тоже самое только чтобы еще и нечетную меняла (допустим если массив 3х3, то менять 1 со 2 столбиком, а 3 не трогать) как такое сделать?
0
akk
44 / 44 / 17
Регистрация: 28.01.2012
Сообщений: 341
03.11.2012, 21:25 26
Цитата Сообщение от level9626 Посмотреть сообщение
как такое сделать?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    int temp=0;
    for (i=0; i<str; i++){
        for(j=0;j<stb; j++){
            if((j==0||j%2==0)&&stb%2==0){
                temp=s[i][j];
                s[i][j]=s[i][j+1];
                s[i][j+1]=temp;
             } 
            else if((j==1||j%2==1)){
                
                temp=s[i][j];
                s[i][j]=s[i][j-1];
                s[i][j-1]=temp;
             } 
            else if(j==stb-1){
                s[i][j]=s[i][j];
            }
        
         }
     }
Возможно последняя else if не нужна, но прописал для надежности.
1
level9626
9 / 9 / 2
Регистрация: 23.09.2012
Сообщений: 150
03.11.2012, 21:50  [ТС] 27
C
1
if((j==0||j%2==0)&&stb%2==0)
вот с этим условием работает массив 2х2 и 4х4. 3х3 - нет.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  int temp=0;
    for (i=0; i<str; i++){
        for(j=0;j<stb; j++){
            if((j==0||j%2==0)&&stb%2==0){
                temp=s[i][j];
                s[i][j]=s[i][j+1];
                s[i][j+1]=temp;
             } 
            else if((j==1||j%2==1)){
                
                temp=s[i][j];
                s[i][j]=s[i][j-1];
                s[i][j-1]=temp;
             } 
            else if(j==stb-1){
                s[i][j]=s[i][j];
            }
        
         }
     }
с этим работает только 3х3) 2х2 и 4х4 не работают, а остаются как есть)

мне нужно их обьеденить)
0
akk
44 / 44 / 17
Регистрация: 28.01.2012
Сообщений: 341
03.11.2012, 22:43 28
C
1
2
3
4
5
6
7
8
9
10
11
            if((j==0||j%2==0)&&stb%2==0){
                temp=s[i][j];
                s[i][j]=s[i][j+1];
                s[i][j+1]=temp;
             } 
            else if((j==1||j%2==1)&&stb%2==1){
                
                temp=s[i][j];
                s[i][j]=s[i][j-1];
                s[i][j-1]=temp;
             }
Добавлено через 7 минут
level9626, вставьте вот этот нормальный вывод матрицы.
C
1
2
3
4
5
6
    for(i=0; i<str; i++) {
        for(j=0; j<stb; j++) {
            printf("%d\t", s[i][j]);
        }
        printf("\n");   
    }
1
level9626
9 / 9 / 2
Регистрация: 23.09.2012
Сообщений: 150
03.11.2012, 22:59  [ТС] 29
благодарочка!

Добавлено через 5 минут
а можете обьяснить теперь немного.
что значит например вот это условие
C
1
2
3
4
5
 if((j==0||j%2==0)&&stb%2==0){
                temp=s[i][j];
                s[i][j]=s[i][j+1];
                s[i][j+1]=temp;
             }
0
akk
44 / 44 / 17
Регистрация: 28.01.2012
Сообщений: 341
04.11.2012, 00:02 30
Цитата Сообщение от level9626 Посмотреть сообщение
C
1
(j==0||j%2==0)&&stb%2==0
если номер столбца 0 или без остатка делиться на 2(т е четный) и количество столбцов тоже четное, то поменять местами соседние элементы массива.
0
04.11.2012, 00:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.11.2012, 00:02

Транспонировать двумерный массив и вычислить сумму отрицательных элементов
Определить : а ) сумму отрицательных элементов массива А; б) превратить...

Организация ввода строки в отдельной функции
Уважаемые Форумчане! Столкнулся со следующей проблемой: Необходимо было...

Вместо ввода элементов в массив заполнить его случайными числами
#include &lt;stdio.h&gt; int main() { int a={0}; int b; int j,i; for (i = 0;...


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

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Опции темы

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