Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C (СИ) Один и тот же код на Си и Паскале работает по-разному! Задача: найти в массиве наидлиннейшую цепочку отрицательных элементов, вырезать её и вставить в конец массива. Нашел тут такой код на паскале, он работает как и требуется: uses crt; const... https://www.cyberforum.ru/ c-beginners/ thread1884294.html C (СИ) В строке найти все слова, содержащие заданное количество гласных букв
Здравствуйте. Помогите,пожалуйста, доделать код. Нужно в строке найти все слова, содержащие заданное количество гласных букв(без использования указателей). #include <stdio.h> #include <conio.h>...
C (СИ) Не разделяет,не выводит слова из строки https://www.cyberforum.ru/ c-beginners/ thread1884281.html
Вот часть кода: if (string == " ") { TEST; strncpy(word,&string,i-INDEX); printf("word:%s\n",word); INDEX = i+1; } Добавлено через 2 часа 50 минут
C (СИ) Как сделать, чтобы не было двух проходов по массиву? https://www.cyberforum.ru/ c-beginners/ thread1884267.html
В массиве записано количество очков, набранных 20 командами-участницами чемпионата по футболу. Определить команды, занявшие первое и второе место. int main(){ int max1,max2=0; int q; for(int...
Удаление строки и столбца в двумерном массиве C (СИ)
Понятия не имею, как удалить строку и столбец массива, в котором содержится минимальное значение. Если можно для примера напишите часть кода, буду очень благодарен:) Пусть будет массив 4х4: int...
C (СИ) Реализировать сортировку точек по их удалению от центра множества https://www.cyberforum.ru/ c-beginners/ thread1884157.html
Доброго времени суток. Помогите с реализацией данной программы или какие разделы(темы) следует почитать. Заданы координаты точек на плоскости (могут присутствовать совпадающие точки). Реализовать...
C (СИ) Заменить цифры от 0 до 9 словами https://www.cyberforum.ru/ c-beginners/ thread1884127.html
Заменить цифры от 0 до 9 словами (если подряд встречаются две цифры и более, то данное число трактуется как две цифры, т.е. 23 – это 2 и 3). Пример: заменить «1 урок» на «один урок».
Календарная задача C (СИ)
Задание: Отпуск рабочего начинается в день d.m.g. и продолжается k дней. Посчитать, сколько недель припадает на отпуск. Сказали, что нужно использовать вечный календарь. Заранее спасибо!
C (СИ) Ввод данных в массив структур Добрый день! Подскажите пожалуйста как решить проблему - ввод данных в первый элемент структуры производится только для 1 структуры в массиве, в последующих циклах это пропускается и предлагается... https://www.cyberforum.ru/ c-beginners/ thread1883990.html C (СИ) Несколько идущих подряд цифр в тексте, получить число образованное этими числами Ребят, я вновь обращаюсь к Вам за помощью. Помогите написать программу, желательно с комментариями. Дан текст, в котором имеется несколько идущих подряд цифр. Получить число, образованное этими... https://www.cyberforum.ru/ c-beginners/ thread1883946.html
Не работает циклический сдвиг матрицы(вправо, вниз), исправите! C (СИ)
Не работает циклический сдвиг матрицы(вправо, вниз), (2 case) #include "stdafx.h" #include <stdio.h> #include <windows.h> #include <conio.h> #include <stdlib.h> #include <math.h> #include...
C (СИ) Память переполненна https://www.cyberforum.ru/ c-beginners/ thread1883839.html
Программа, для умножения столбца с максимальным значение на строку с минимальным. На каком месте программа зацикливается? #include <stdio.h> #include <stdlib.h> int i, j, k; int...
0 / 0 / 0
Регистрация: 19.10.2016
Сообщений: 16
0

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

20.12.2016, 21:52. Показов 428. Ответов 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];
}


Вернуться к обсуждению:
Не могу понять почему не работает в первом кейсе "Suma modyley posle 0" и "Masiv 2(spo4atku parni pozicii)" C (СИ)
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.12.2016, 21:52

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

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

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

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

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