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

Посоветуйте как немного подправить вывод

25.02.2019, 20:04. Просмотров 872. Ответов 1

выполняя задание: "Напишите функцию Shift_R(mas,n,k,s), которая циклически сдвигает массив mas длины n вправо или влево на k позиций. s – переключатель направления." Написал следующую программу, которая успешно работает, однако при выводе в консоли элементы начального и конечного массивов расположены не ровно один под одним, а последний массив сдвинут в сторону, как исправить код чтобы символы обоих массивов выводились ровно один под одним? Спасибо!

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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
int Sdvig(int mas[], int n, int k, int s);
 
int main()
{
    int A[7] = { 5, 6, 7, 8, 9, 10, 11 }; // массив для цикл.сдвига
    printf("%d %d %d %d %d %d %d\n", A[0], A[1], A[2], A[3], A[4], A[5], A[6]);
    int k; // позиции сдвига
    int N = 7;//кол-во элементов в массиве
    Sdvig(A, 7, 4, 0); //задание параметров сдвига
    for (k = 0; k<N; k++) //вывод массива
        printf(" %d ", A[k]);
        
    system(" pause ");
    return(0);
}
 
int Sdvig(int mas[], int n, int k, int s)
{
    switch (s)
    {
        int i, j, buf;
    case 0:
    {
        for (j = 1; j <= k; j++) //перебор элементов массива слева направо
        {
            buf = mas[n - 1];  //занесение в буфер последнего элемента
 
            for (i = n - 1; i >= 0; i--) //перебор элементов массива начиная с конца до 2-ого
            {
                mas[i] = mas[i - 1];//на каждом шаге цикла текущему элементу mas[i] присваивается значение предыдущего элемента mas[i-1]
                                    //значения остальных элементов массива будут смещены вправо на одну позицию 
            }
            mas[0] = buf;//значение буфера, в котором хранится последний элемент исходного массива, будет занесено в первый элемент массива 
        }
        break;
    }
    case 1:
    {
        for (j = 1; j <= k; j++)
        {
            buf = mas[0];//занесение в буфер первого элемента
 
            for (i = 0; i<n - 1; i++) //перебор элементов с начала до n-1
            {
                mas[i] = mas[i + 1]; //на каждом шаге цикла текущему элементу mas[i] присваивается значение последующего элемента массива mas[i+1] 
                                     //Значения остальных элементов массива будут смещены на одну позицию влево
            }
            mas[n - 1] = buf;//значение буфера, в котором хранится первый элемент исходного массива, будет занесено в последний элемент массива mas[n].
        }
        break;
    }
    return(0);
    }
 
}
0
Миниатюры
Посоветуйте как немного подправить вывод  
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.02.2019, 20:04
Ответы с готовыми решениями:

Подправить вывод таблички на экран (не красиво выводится)
Как сделать, чтобы все таблички, которые есть в программе, выводились аккуратно, чтобы столбцы не...

Выводит немного не то что надо ,как подправить код
Всем привет, подскажите плиз как сделать так . 1)Если я ввожу числа больше 10 ,то снова надо...

подправить немного
#include &lt;iostream&gt; using namespace std; int main() { int i, j, N, M; double *a,*b,*c; ...

Немного подправить.
Имеется код программы. Он рабочий, но почему то при вводе данных в программу, в документе...

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

1
liv
1166 / 971 / 199
Регистрация: 07.10.2015
Сообщений: 3,106
Завершенные тесты: 1
25.02.2019, 20:28 2
Лучший ответ Сообщение было отмечено Стас5486 как решение

Решение

Стас5486, подправьте:
C
1
2
3
4
5
6
7
    printf("%3d %3d %3d %3d %3d %3d %3d\n", A[0], A[1], A[2], A[3], A[4], A[5], A[6]);
//...
    for (k = 0; k < N; k++) //вывод массива
        printf("%3d ", A[k]);
    printf("\n");
 
    system(" pause ");
И в пп Sdvig() перенесите return(0) в самый конец
C
1
2
3
4
    }
    }
    return(0);
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.02.2019, 20:28

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

Немного подправить код
Друзья, помогите, программа почему то сразу вылетает #include &lt;iostream&gt; #include &lt;exception&gt;...

вы немогли бы немного подправить
#include&lt;stdio.h&gt; #include&lt;conio.h&gt; #include&lt;math.h&gt; void main() {int i,j; float...


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

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

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