0 / 0 / 0
Регистрация: 19.10.2016
Сообщений: 16
1

Не могу понять почему не работает в первом кейсе "Suma modyley posle 0" и "Masiv 2(spo4atku parni pozicii)"

20.12.2016, 21:52. Показов 409. Ответов 3
Метки нет (Все метки)

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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
 
void shiftRight(int **matrix, int rows, int columns, int shift);
void shiftDown(int **matrix, int rows, int columns, int shift);
 
int main()
{
    srand((unsigned)time(NULL));
    int n;
    int m[100];
    int f[100];
    int abssum = 0;
    int min1 = 0;
    int imin = 0;
    int a = 0;
    int i = 0;
    int rows, columns, shift, j, s;
    int **matrix;
    printf("-----------------------------------------------------Menu---------------------------------------------------------------");
    printf("1. Min po modulyu\n");
    printf("2. Cicle zdvig\n");
    printf("3. Slova\n");
    printf("------------------------------------------------------------------------------------------------------------------------\n");
    printf("Vubiray: ");
    int input;
    scanf_s("%d", &input);
    switch (input) {
    case 1:
        printf("N="); scanf_s("%i", &n);
        printf("Masiv 1:\n");
        for (i = 0; i < n; i++) 
        {
            m[i] = rand() % 23 - 11;
            printf("%4i", m[i]);
        }
        printf("\n\n");
        for (i = 1; i < n; ++i){
            if (abs(m[i]) < abs(m[imin]))
                imin = i;
        }
        printf("Poiisk min 4isla po modulu: %i(%i)\n\n", imin + 1, m[imin]);
        while (m[i] && i < n)
            ++i;
        while (i < n)
            abssum += abs(m[i]), ++i;
        printf("Suma modyley posle 0: %d\n\n", abssum); 
        for (i = 1; i < n; i++)
        if (i % 2 != 0) {
            f[a] = m[i];
            a++;
        }
        for (i; i < n; i++)
        if (i % 2 == 0) {
            f[a] = m[i];
            a++;
        }
        printf("Masiv 2(spo4atku parni pozicii):\n");
        for (i; i < n; i++)
            printf("%d\t", f[i]);
        printf("\n");
        break;
    case 2:
        printf("Enter rows and columns of matrix ");
        scanf_s("%d", &rows);
        scanf_s("%d", &columns);
        matrix = (int **)malloc(rows * sizeof(int *));
        for (i = 0; i < rows; ++i) {
            matrix[i] = (int *)malloc(columns * sizeof(int));
            for (j = 0; j < columns; ++j) {
                matrix[i][j] = -50 + rand() % 100;
                printf("%3d\t", matrix[i][j]);
            }
            printf("\n");
        }
 
        printf("Enter nuber of shift: ");
        scanf_s("%d", &shift);
        printf("Rotate:\n");
        printf("1.Right\n");
        printf("2.Down\n");
 
        scanf_s("%d", &s);
 
        if (s == 1) {
 
            shiftRight(matrix, rows, columns, shift);
        }
        else if (s == 2)
            shiftDown(matrix, rows, columns, shift);
        else printf("Error");
 
        for (i = 0; i < rows; ++i) {
            for (j = 0; j < columns; ++j)
                printf("%3d\t", matrix[i][j]);
            printf("\n");
        }
 
        for (i = rows - 1; i >= 0; --i)
            free(matrix[i]);
        free(matrix);
        break;
        //case 3:
        //printf("\n");
        //break;
    /*default:
        printf("Неправильный ввод.\n");*/
    }
    _getch();
    return 0;
}
 
void shiftRight(int ** matrix, int rows, int columns, int shift)
{
    int i;
    int MATRIX_SIZE = rows * columns;
    shift = shift % MATRIX_SIZE;
 
    if (shift == 0)
        return;
 
    int * temp_matrix = (int *)malloc(MATRIX_SIZE * sizeof(int));
 
    for (int i = 0; i < MATRIX_SIZE; ++i) {
        temp_matrix[i] = matrix[i / columns][i % columns];
    }
 
    for (i = 0; i < MATRIX_SIZE; ++i) {
        matrix[i / columns][i % columns] = temp_matrix[(i + MATRIX_SIZE - shift) % MATRIX_SIZE];
    }
 
    free(temp_matrix);
}
 
void shiftDown(int ** matrix, int rows, int columns, int shift) {
    int ** temp = new int *[shift];
    for (int t = rows - shift, s = 0; t < rows; t++)
        temp[s++] = matrix[t];
 
    int r = shift;
    while (--r >= 0) {
        for (int m = rows - 2; m >= 0; m--)
            matrix[m + 1] = matrix[m];
    }
 
    for (int x = 0; x < shift; x++)
        matrix[x] = temp[x];
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.12.2016, 21:52
Ответы с готовыми решениями:

Создать запись "Двигатель", которая содержит элементы "Название", "Мощность", "Скорость", "Цена"
Создать запись &quot;Двигатель&quot;, которая содержит элементы &quot;Название&quot;, &quot;Мощность&quot;, &quot;Скорость&quot;,...

Ввести структуру "историческое событие" с полями "число", "месяц", "год", "событие"
Ввести структуру ИСТОРИЧЕСКОЕ СОБЫТИЕ с полями ЧИСЛО, МЕСЯЦ, ГОД, СОБЫТИЕ. Составить и...

Подсчитать общее количество вхождений в строку символов "А", "a", "B" и "b"
#include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &lt;conio.h&gt; main() { int i; int k; ...

"Перевернуть" в строке все слова (Например: "Жили были" в "илиЖ илыб")
&quot;Перевернуть&quot; в строке все слова. (Например: &quot;Жили были дед и баба&quot; - &quot;илиЖ илиб дед и абаб&quot;)

3
Хитрая блондиночка $)
1464 / 979 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
20.12.2016, 22:22 2
Мне этот код чем-то напомнил олдскульный стиль 80-х )
А в каком смысле "не работает"? Выводит не то что ожидается, или ошибку дает, или вообще не доходит до нужного оператора?
0
0 / 0 / 0
Регистрация: 19.10.2016
Сообщений: 16
21.12.2016, 00:34  [ТС] 3
Hikari, ошибку нашла
0
Хитрая блондиночка $)
1464 / 979 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
21.12.2016, 07:31 4
Опиши как именно проявляется неработоспособность ПО.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.12.2016, 07:31

Подсчитать количество сдвоенных символов "сс", "нн", "лл" в тексте, расположенном в текстовом файле
Пожалуйста) Подсчитать количество сдвоенных символов сс, нн, лл в тексте, расположенном в текстовом...

Функция замены ":" на "_" в названии файла и ошибка "undefined reference to 'strcat'"
Добрый день,прошу помочь мне с такой проблемой: В общем есть функция,работающая с именем...

Ввести структуру "Алгебраический полином" с полями "степень", "коэффициенты"
Ребят,вот само задание : Ввести структуру АЛГЕБРАИЧЕСКИЙ ПОЛИНОМ с полями СТЕПЕНЬ, КОЭФФИЦИЕНТЫ....

В строке заменить последовательность слов "один", "два", "три"
Помогите,плз) В строке заменить последовательность слов &quot;один&quot;, &quot;два&quot;, &quot;три&quot; на &quot;1-2-3&quot;


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

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

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