Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/25: Рейтинг темы: голосов - 25, средняя оценка - 4.96
0 / 0 / 0
Регистрация: 26.01.2011
Сообщений: 5

Двумерный массив и структуры

26.01.2011, 15:23. Показов 4627. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Я первый семестр изучаю программирование и никогда до этого с ним не сталкивался! Скоро у меня контрольная по Си на которой надо написать код программы на листе бумаге, без компьютера! Может попасться два вида заданий - или задание связанное с двумерным массивом или задание связанное со структурами. С двумерным массивом - сложить все элементы введенного столбца, поменять столбцы местами, найти наименьшее число в каждом столбце. Структуры - организовать поиск по названию. У меня вопрос - можете показать на примере как сделать подобные задания? У всех заданий с двумерным массивом основа будет одна и та же? Или можете обьяснить логику выполнения? Спасибо
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.01.2011, 15:23
Ответы с готовыми решениями:

Двумерный массив. Ввести двумерный массив, найти сумму элементов каждого столбца
Ввести двумерный массив, найти сумму элементов каждого столбца.

Двумерный массив. Заполнить и вывести двумерный массив БЕЗ использования цикла FOR
Заполнить ивывести двумерный массив БЕЗ использования цикла FOR очень срочно!!!

Создать двумерный массив, опираясь на другой двумерный массив
У меня есть такой массив 0 0 0 0 0 0 0 6 3 2 2 8 9 3 7 6 8 3 4 5 1 0 0 0 0 0 0 0 0 0 0 0 0...

9
35 / 34 / 7
Регистрация: 14.12.2010
Сообщений: 159
26.01.2011, 16:28
parenn,
ты лучше в аську мне напиши, вместе разберемся.
377759169
0
0 / 0 / 0
Регистрация: 26.01.2011
Сообщений: 5
26.01.2011, 16:41  [ТС]
Начало у всех заданий связанны с двумерным массивом одинаково? В Си ?

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define RINDA 3
#define KOLONA 5
 
void main()
{
 int *mas, *vector, rez, i, j;
 clrscr();
 randomize();
 
 printf("Sakummasivi\nVektors\n");
 for(i=0; i<KOLONAS; i++)
   printf("%3d", *(vector+i)=random(5));
printf("\n\nDivdimensiju masivs\n");
 for(i=0; i<RINDAS; i++)
   {
    for(j=0; j<KOLONAS; j++)
      printf("%3d", *(mas+i*KOLONAS+j)=random(5));
    printf("\n");
   }
0
35 / 34 / 7
Регистрация: 14.12.2010
Сообщений: 159
26.01.2011, 18:04
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <stdlib.h>
 
void main() {
    int arr[10][10]; //объявляем двумерный массив 10*10
    int i, j, col, sum = 0;
    //инициализация массива вводом с клавиатуры
    for (i = 0; i < 10; i++) {
        for (j = 0; j < 10; j++) {
            scanf("%d", &a[i][j]);
        }
    }
    //обработка: например, складываем все элементы введенного столбца:
    scanf("%d", &col); //считываем номер столбца
    for (i = 0; i < 10; i++) {
        sum += a[i][col];
    }
    printf("%d", sum);
}
Для того, чтобы что-то обработать, надо сначала чтобы было, ЧТО обрабатывать. поэтому, инициализация массивов будет везде одинаковая. /* здесь - ввод с клавиатуры, но можно еще заполнить массив случайных образом */

Здесь размерность массива задана изначально, 10 * 10. Но можно еще поработать с динамикой... Это немного сложнее, поэтому я не стала.

Обратите внимание, что нумерация строк/столбцов начинается с 0. Поэтому, номер столбца здесь может быть от 0 до 9 (!). Здесь нет проверки этого условия, но при желании, можно написать.
0
0 / 0 / 0
Регистрация: 26.01.2011
Сообщений: 5
26.01.2011, 18:15  [ТС]
А чтобы пользователь сам вводил размер двумерного массива - это всё усложняет? И ещё вопрос про вторую часть - как найти наименьшее число всех столбцов? Спасибо! У меня просто нет аськи, есть скайп!
0
35 / 34 / 7
Регистрация: 14.12.2010
Сообщений: 159
26.01.2011, 18:28
C
1
2
3
4
5
scanf("%d", size);
int arr=(int **)calloc(size,sizeof(int*));
for (i = 0 ; i < size; i++) {
    arr = (int*)calloc(size,sizeof(int));
}
Нужно будет еще добавить вот этот кусок кода до инициализации. Это для создания массива размера size*size.
Информация по функции CALLOC
0
0 / 0 / 0
Регистрация: 26.01.2011
Сообщений: 5
26.01.2011, 18:34  [ТС]
а тогда что вместо 10 писать в объявлении массива?
0
35 / 34 / 7
Регистрация: 14.12.2010
Сообщений: 159
26.01.2011, 18:43
C
1
2
3
4
5
6
7
8
9
for (j = 0; j < size; j++) {
    min = a[0][j];
    for (i = 0; i < size; i++) {
        if (a[i][j] < min) {
            min = a[i][j];
        }
    }
    printf ("%d", min, " min ", j, "ого стоблца");
}
Как-то так. Писала без компилятора, так что могут быть ошибки.

Добавлено через 1 минуту
Цитата Сообщение от parenn Посмотреть сообщение
а тогда что вместо 10 писать в объявлении массива?
size
должно выглядеть так:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void main() { 
    int i, j, col, sum = 0, size;
    scanf("%d", size);
    int arr=(int **)calloc(size,sizeof(int*));
    for (i = 0 ; i < size; i++) {
        arr = (int*)calloc(size,sizeof(int));
    }
    //инициализация массива вводом с клавиатуры
    for (i = 0; i < size; i++) {
        for (j = 0; j < size; j++) {
            scanf("%d", &a[i][j]);
        }
    }
    //бла бла бла и прочие обработки
}
0
0 / 0 / 0
Регистрация: 26.01.2011
Сообщений: 5
27.01.2011, 01:18  [ТС]
Спасибо! надеюсь мне это поможет на контрольной, а то уже буду 3-ий раз переписывать!

Добавлено через 5 часов 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
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define RJADI 3
#define KOLONI 5
void main()
{
 int vector[KOLONI], i, j, arr[RJAD][KOLONI];
 clrscr();
 randomize();
 
 printf("Sakummasivi\nVektors\n");
for(i=0; i<KOLONI; i++)
  {
   vector[i] = random(5);
   printf("%3d", vector[i]);
  }
 
 printf("\n\nDvumernij masiv\n");
 for(i=0; i<RJAD; i++)
   {
    for(j=0; j<KOLONI; j++)
     {
      arr[i][j] = random(5);
      printf("%3d", arr[i][j]);
     }
    printf("\n");
   }
Добавлено через 1 час 21 минуту
ещё вопрос - как поменять два ряда местами? Ряды вводит пользователь
0
41 / 41 / 10
Регистрация: 22.05.2009
Сообщений: 492
27.01.2011, 02:37
parenn, Про ряды, можешь создать дополнительный одномерный массив, и через него меняешь всю строку целеком.
Или еще проще через допонительную перемнную, но тут менять придется по одному элементу.

Говоря по русски задача такая же как перелить воду из стакана А в стакан Б.
Тебе нужно использовать что то дополнительное, например стакан С.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.01.2011, 02:37
Помогаю со студенческими работами здесь

Сделайте, чтобы двумерный вектор обогнал двумерный массив при заполнении случайными числами
Всем привет! Попробовал сравнить время заполнения векторов в векторе и массивов в массиве (динамические) случайными числами, получаемыми...

Дан двумерный массив A N*N). Сформировать двумерный упорядоченныймассив (А 11<=A 12<= .<=A 23<=.<=A nn)
Дан двумерный массив A(N*N). Сформировать двумерный упорядоченный массив (А11&lt;=A12&lt;= ...&lt;=A23&lt;=...&lt;=Ann).

Как можно вложить двумерный массив в двумерный?
Нужно написать программу перемножения двух матриц размерностью МxМ, элементы которых, матрицы размерностью КxК... Подскажите (желательно с...

Двумерный массив преобразовать в двумерный List<T>
имеется матрица Single matr; Не важно как и откуда я ее заполняю, но на выходе выходит матрица из 4-х столбцов. После мне удобней...

Двумерный массив.Дан массив 5 х 5. Определить сумму элементов тех строк, где диагональный элемент равен нулю и записать их в отдельный массив.
помогите составить программу. во задание:Дан массив 5 х 5. Определить сумму элементов тех строк, где диагональный элемент равен нулю и...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru