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

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

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

Author24 — интернет-сервис помощи студентам
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
Ответы с готовыми решениями:

Не могу понять, почему программа работает неправильно( Знаю, что где-то ошибки, но не могу найти
{Ввести последовательность натуральных чисел Aj j=1...n (n&lt;=1000). Упорядочить последовательность...

Не работает изменение, не могу понять почему, Update не работает, ошибку выдает
Помогите, изменение с помощью button string u =...

Не могу понять почему не работает (или правильно не работает)
#include &lt;iostream.h&gt; #include &lt;conio.h&gt; #define N 5 #define M 3 void main() { int a; ...

Не могу понять почему не работает
Суть програмы в тому чтобы украинский текст транслитерировать английскими буквами. Пользователь...

Не могу понять почему не работает
Помогите исправить код программы, пожалуйста! using System; using System.Collections.Generic;...

3
Хитрая блондиночка $)
1472 / 988 / 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
Хитрая блондиночка $)
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
21.12.2016, 07:31 4
Опиши как именно проявляется неработоспособность ПО.
0
21.12.2016, 07:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.12.2016, 07:31
Помогаю со студенческими работами здесь

Не могу понять, почему не работает
Не могу понять, почему не не рабоате background, путь к изображению прописал нормально, в файле css...

Не могу понять почему не работает
Нужно в Edit-ах вывести минимальное значение из каждой строки массива, но у меня почему то выводит...

Не могу понять почему не работает
#include &quot;stdio.h&quot; #include &quot;math.h&quot; #include &quot;conio.h&quot; #define E 1e-6 int main() { ...

Не могу понять почему не работает
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics,...

Не могу понять почему не работает
Здравствуйте. Взял с интернета код для определения ip адреса компьютера с помощью wmi, немного...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru