Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Настасии
0 / 0 / 0
Регистрация: 13.05.2016
Сообщений: 4
1

Нужны комментарии к коду

19.06.2016, 17:41. Просмотров 188. Ответов 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
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include<stdio.h>
#define N 100
 
int main()
{
int mas[N][N]; int mas2[N][N];
int nyll[N]; int str[N]; int nyll1[N]; int str1[N]; int nyll2[N]; int 
str2[N]; 
int m, k, i, j;
for (i = 0; i < N; i = i + 1)
for (j = 0; j < N; j = j + 1)
{
scanf("%d",&mas[i][j]);
mas2[i][j] = mas[i][j];
}
 
for (i = 0; i < N; i = i + 1)
{
str[i] = i;
m = 0;
for (j = 0; j < N; j = j + 1)
if (mas[i][j] == 0)
m = m + 1;
nyll[i] = m;
}
k = -1;
for (i = 0; i < N; i = i + 1)
{
if (nyll[i] != 0)
{
k = k + 1;
nyll1[k] = nyll[i];
str1[k] = str[i];
}
}
for (i = 0; i <= k; i = i + 1)
{
nyll2[i] = nyll1[i];
str2[i] = str1[i];
}
k = k + 1;
int tmp, tmp1, step;
for (step = k / 2; step > 0; step = step / 2)
for (i = step; i < k; i++)
{
tmp = nyll1[i];
tmp1 = str1[i];
for (j = i; j >= step; j = j - step)
{
if (tmp < nyll1[j - step])
{
nyll1[j] = nyll1[j - step];
str1[j] = str1[j - step];
}
else
break;
}
nyll1[j] = tmp;
str1[j] = tmp1;
}
for (i = 0; i < k; i = i + 1)
{
for (j = 0; j < N; j = j + 1)
{
mas2[str2[i]][j] = mas[str1[i]][j];
}
}
for (i = 0; i < N; i = i + 1)
{
for (j = 0; j < N; j = j + 1)
printf("%d",mas2[i][j]);
printf("\n");
}
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2016, 17:41
Ответы с готовыми решениями:

Сортировка методом пузырька (нужны комментарии к коду)
for (int i=n-1; i&gt;=0; i--) // метод пузырька { for (int j=0; j&lt;i; j++)...

Рекурсивный распил доски, нужны комментарии к коду
Здравствуйте! Искал задачу в интернете о рекурсивном распиле доски. Нашел...

Найти длину самого короткого слова в предложении (нужны комментарии к коду)
Дано предложение найти длину его самого короткого слова. Программа находит и...

Добавить комментарии к коду
Кто нибудь напишите подробный комментарий к коду ни СИ. Можно подробней по...

Необходимы комментарии к коду
расспишите её #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; int...

1
Mycola
23 / 13 / 47
Регистрация: 23.03.2013
Сообщений: 157
20.06.2016, 13:46 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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include <stdio.h> //заголовочный файл который содержит функции ввода/вывода 
 
#define N 5 // количество строк и/или столбцов масивов (для одномерного количество элементов)
 
int main(){
    int mas[N][N], // массив введенных чисел с клавиатуры статический размером 100х100
        mas2[N][N], // копия массива mas
        nyll[N], // содержит количество нулевых элементов в соответсвующих строках массива mas
        str[N], // одномерный статический массив 
        nyll1[N], 
        str1[N], 
        m,  // счетчик нулевых элементов
        k,  // количество строк в массиве mas которые содержат хотя бы один ноль
        i,  // переменная-счетчик цыкла 
        j;  // переменная-счетчик цыкла 
 
    for (i = 0; i < N; i = i + 1) {
        for (j = 0; j < N; j = j + 1)
        {
            printf("mas[%i][%i] = ", i, j);
            scanf("%d", &mas[i][j]); // вводим очередное число в массив 
            mas2[i][j] = mas[i][j];  // копируем элемент mas[i][j] в mas2[i][j]
        }
        printf("\n");
    }
 
    for (i = 0; i < N; i = i + 1)
    {
        str[i] = i; // записываем индексы строк 
        m = 0;  // обнуляем счетчик нулевых элементов
        for (j = 0; j < N; j = j + 1)
            if (mas[i][j] == 0) // если елемент массива mas[i][j] равняется нулю то 
                m = m + 1;  // увеличиваем счетчик нулей в строках массива mas на единицу
        nyll[i] = m; // записываем значение счетчика в масив nyll
    }
 
    k = -1; 
    for (i = 0; i < N; i = i + 1)
        if (nyll[i]) { //если очередное елемент массива nyll не нулевой, то
            k = k + 1;  // увеличиваем счетчик k на единицу, в конце k будет содержать количество ненулевых элементов массива  nyll
            nyll1[k] = nyll[i]; // копируем последовательно ненулевые элементы массива nyll в массив nyll1
            str1[k] = str[i];  // копируем последовательно индексы строк с массива str (строки содержат нули в соответствующих строках массива mas) в масив str1
        }
 
    k = k + 1; 
    int tmp, tmp1, step;
    // тут идет алгоритм сортировки, но он не правильно работает
    for (step = k / 2; step > 0; step = step / 2)
        for (i = step; i < k; i++){
            tmp = nyll1[i]; 
            tmp1 = str1[i];
            for (j = i; j >= step; j = j - step)
                if (tmp < nyll1[j - step]){
                    nyll1[j] = nyll1[j - step];
                    str1[j] = str1[j - step];
                }
                else break;
            nyll1[j] = tmp;
            str1[j] = tmp1;
        }
    
    for (i = 0; i < N; i = i + 1)
        for (j = 0; j < N; j = j + 1)
            mas2[i][j] = mas[str1[i]][j]; 
 
    for (i = 0; i < N; i = i + 1){
        for (j = 0; j < N; j = j + 1)
            printf("%d\t\t", mas2[i][j]); // вывод массива mas2
        printf("\n");
    }
    return NULL;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.06.2016, 13:46

Нужны комментарии о форматированном выводе
Всем привет, объясните пожалуйста, что это за запись в коде? int n,i; ...

Нужны комментарии к строке кода
#include &lt;iostream&gt;// подключили библиотеку ввода-вывода #include &lt;cstdlib&gt;//...

Посимвольное считывание строки, нужны комментарии
Кто-нибудь может пожалуйста объяснить построчно,что делает эта программа? ...


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

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

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