Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C (СИ) Заполнить её элементами ряда Фибонначи, начиная с первого элемента, параллельно побочной диагонали, и вывести её на экран. https://www.cyberforum.ru/ c-beginners/ thread264229.html
Задача на С++:Дана матрица A. Заполнить её элементами ряда Фибонначи, начиная с первого элемента, параллельно побочной диагонали, и вывести её на экран. Например: A: 1 1 3 13 2 5 21 89 8 34 144 377 55 233 610 987 P/s - я не могу реализовать сам цикл (я думаю, что он выражается через условие(i=(n-j+1), и в цикл нужно включить, кроме i и j, ещё переменную к). В итоге получил такой...
C (СИ) Как дополнять элементы нулями при выводе (до 8 цифр)
Доброе время суток. Работал с длинной арифметикой, для хранения чисел использовал вектор с основанием {10}^{8}. Но тут возникла проблема, как же дополнять элементы нулями при выводе (до 8 цифр). В С эта проблема решалась бы одной строкой: printf ("%08d", a); А есть ли такой же красивый вариант на С++? Задачу я уже сдал, но пошел, как мне кажется, не самым удобным способом: #define BASE...
C (СИ) Использование нескольких функций здраствуйте,никак не пойму задачу, подскажите как можно решить(задача на языке СИ): Даны целые числа а1...,an,b1...,bm,k. Если в последовательности а1...,an нет ни одного члена со значением k, то первый по порядку член этой последовательности, не меньший всех остальных членов, заменить на значение k. По такому же правилу преобразовать последовательность b1...,bm применительно к значению 10.... https://www.cyberforum.ru/ c-beginners/ thread264004.html C (СИ) описание куска программы на Си помогите пожалуйста описать этот кусок после int maina до scanf("%d", (arr_a + i)); #include <stdio.h> #include <stdlib.h> #include <conio.h> void Print(int* arr, int size) { for(int i = 0; i < size; i++) printf( "%d ", *(arr+i) ); printf("\n"); https://www.cyberforum.ru/ c-beginners/ thread263966.html
Заполнение массива элементами типа float C (СИ)
Здравствуйте! Мне надо заполнить массив элементами типа float, причем это должны быть числа из ВСЕГО диапазона допустимых значений. У меня идея такая: генерирую с помощью frand() 2 числа, и их разность умножаю на 10в степени от 0 до 38. т.е.: #define frand() ((float) rand()/(RAND_MAX+1.0)) (frand()-frand())*1E+(какая-то степень от 0 до 38). И возникла проблема как это сделать?...
C (СИ) Найти пару элементов вектора с максимальной суммой https://www.cyberforum.ru/ c-beginners/ thread263843.html
дан вектор размерности n . целых чисел. Найти пару элементов вектора с максимальной суммой. #include <math.h> #include <stdio.h> #include <time.h> #include <stdlib.h> int main() { int i;
C (СИ) Удалить букву, перед которой стоит заданный символ Задача программы: ввести предложение со знаком #. Буква, стоящая перед этим знаком (#), должна удаляться. Т.Е. H#HEE#LLOO# в результате должно получиться HELLO. Я написал часть, но буква не удаляется, а заменяется на #. Думаю нужно теперь все буквы перенести в один массив, а # в другой, но не знаю как это сделать. Вот это и прошу помоч реализовать. Это С, не C++. Вот часть, которую я написал :... https://www.cyberforum.ru/ c-beginners/ thread263822.html C (СИ) Считать строку неизвестной длины
Как на си считать строку неизвестной длины?
C (СИ) Где правильно поместить инкремент Задача была сократить запись этой функции int count_spaces(const char *s) { int count = 0; for (; *s != '\0'; s++) if (*s == ' ') count++; return count; https://www.cyberforum.ru/ c-beginners/ thread263768.html C (СИ) Поиск самого длинного слова (Си) Извините что так прям с места в карьер, но у меня есть задача звучит она так Разработать программу поиска самого длинного слова в заданном текстовом файле. Имя фйла должно передаваться программе через аргумент командной строки ее вызова. Если в файле имеется несколько различных слов равной максимальной длины, программа должна найти все такие слова. Найден слова должны отображаться через поток... https://www.cyberforum.ru/ c-beginners/ thread263762.html
Составить палиндром наибольшей длины C (СИ)
var i, n : integer; c : char; symb : array of longint; begin for c := 'A' to 'Z' do symb := 0; readln(n); for i := 1 to n do begin read(c);
C (СИ) Решить систему уравнений методом Гаусса Вот задача Решив систему уравнений A(n,n)X=B(n) методом Гаусса #include <stdio.h> #include <conio.h> #include <iostream.h> #include <math.h> int GAUS(double **matrix_A, int n, double *matrix_B,double *x) https://www.cyberforum.ru/ c-beginners/ thread263516.html
Эксперт С++
5043 / 2622 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 1
28.03.2011, 14:31 0

Копирование из стека в стек - C (СИ) - Ответ 1494595

28.03.2011, 14:31. Показов 17068. Ответов 7
Метки (Все метки)

Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Постарался как можно более подробно комментировать. Можете использовать для примера или основы.
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
#include <stdio.h>
#include <stdlib.h>
 
/* Описание структуры стек. 
 * typedef задает синоним для типа данных, 
 * В языке Си, если не использовать typedef приходится каждый раз добавлять слово 
 * struct перед объявлением очередного экземпляра структуры, typedef позволяет этого избежать.
*/
typedef struct stack {
    int value;              /* информативная часть */
    struct stack * next;    /* адресная часть */
} node_t, stack_t;
 
/* is_empty
 * Функция позволяет определить есть ли элементы в стеке, проще говоря, 
 * пуст или не пуст стек. В качестве аргумента принимает двойной указатель на вершину стека.
 * Если стек пуст, то указатель на вершину должен быть равен NULL.
*/
int is_empty(stack_t ** top) {
    return *top == NULL;
}
 
/* push
 * Положить элемент в стек. 
 * Аргументы: указатель на вершину стека и значение, которое необходимо добавить в стек.
 * Память для нового узла стека выделяется динамически.
*/
void push(stack_t ** top, int value) {
    node_t *node = (node_t *)malloc(sizeof(node_t));
    /* printf("%p created\n", node); */
    
    /* формирование информативной части */
    node->value = value;
 
    /* формирование адресной части */
    node->next = NULL;
 
    /* если стек не пуст, то вершина должна указывать на предыдущий элемент */
    if(!is_empty(top))
        node->next = *top;
    (*top) = node;
}
 
/* pop
 * Функция удаления элемента с вершины стека
*/
void pop(stack_t **top) {
    node_t *node;
 
    /* Если стек пуст, то удалять ничего не надо */
    if(!is_empty(top)) {
        /* Так как удаляется вершина стека, то адресную часть необходимо скорректировать */
        node = *top;
        *top = (*top)->next;
        
        free(node);
        /* printf("%p deleted\n", node); */
        
        node = NULL;
    }
}
 
/* top
 * Извлечение значения из стека
 * Функция возвращает значение с вершины стека 
*/
int top(stack_t **top) {
    if(!is_empty(top)) 
        return (*top)->value;
    else
        return 0;
}
 
/* clear
 * Очистка стека. Функция удаляет все элементы из стека
*/
void clear(stack_t **top) {
    while(!is_empty(top))
        pop(top);
}
 
 
void print(stack_t **top) {
    node_t *node;
    for(node = *top; node != NULL; node = node->next)
        printf("%d -> ", node->value);
    printf("\b\b\b   \n");
}
 
int main()
{
    int i;
    stack_t *s1 = NULL; /* указатель на вершину первого стека */
    stack_t *s2 = NULL; /* указатель на вершину второго стека */
 
    /* положить 10 элементов в первый стек по порядку от 0 до 9 */
    for(i = 0; i < 10; ++i) 
        push(&s1, i);
 
    /* содержимое первого стека */
    printf("contents of the first stack: \n");
    print (&s1);
 
    /* 5 элементов переложить во второй стек */
    for(i = 0; i < 5; ++i) {
        /* положить во 2-ой стек элемент с вершины 1-го стека */
        push(&s2, top(&s1));
        /* удалить элемент из 1-го стека */
        pop(&s1);
    }
 
    /* содержимое первого стека */
    printf("\ncontents of the first stack: \n");
    print (&s1);
    /* содержимое второго стека */
    printf("\ncontents of the second stack: \n");
    print (&s2);
 
    /* очистка стеков перед завершением работы приложения */
    /* обязательно, чтобы не было утечки */
    clear(&s1);
    clear(&s2);
 
    return 0;
}
Код
C:\Users\fasked\Documents\Visual Studio 2010\Projects\adt\Debug>stack
contents of the first stack:
9 -> 8 -> 7 -> 6 -> 5 -> 4 -> 3 -> 2 -> 1 -> 0

contents of the first stack:
4 -> 3 -> 2 -> 1 -> 0

contents of the second stack:
5 -> 6 -> 7 -> 8 -> 9


Вернуться к обсуждению:
Копирование из стека в стек C (СИ)
2
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.03.2011, 14:31
Готовые ответы и решения:

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

Преобразовать стек в два стека
Здравствуйте. Завтра сдача. ЗАранее Спасибо!!!! Ошибка (21,42) Cannot convert 'void *' to ' Node...

Из одного стека перенести элемент в другой стек
Как организуется стек(и)? Каким образом можно из одного стека перенести в другой стек элемент?

Реализовать функцию помещения в стек, изъятия из стека, получение текущего количества элементов
Доброго всем. Не могу написать прогу, на динамику вообще ничего не получается сделать. Просмотрел...

7
28.03.2011, 14:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.03.2011, 14:31
Помогаю со студенческими работами здесь

Преобразовать стек в два стека - первый должен содержать только чётные числа, второй — только нечётные
Здравствуйте!! Нужно создать стек в диапазоне -50 до 50.Преобразовать стек в два стека.Причем,...

Создать два новых стека, с четными и нечетными элементами первоначального стека
Дано указатель P1 на вершину непустого стека. Создать два новых стека , переместив в первый из них...

Извлечь из стека первый (верхний) элемент и вывести его значение D, а также адрес P2 новой вершины стека
Дано указатель P1 на вершину непустого стека. Извлечь из стека первый (верхний) элемент и вывести...

Структура стек (: добавить элемент в стек, удалить элемент из стека, получить значение с вершины стека, размер стека...)
Всем привет,ребят помогите пожалуйста с лабой,вообще без понятия про стеки:( Может кто то...

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