Форум программистов, компьютерный форум CyberForum.ru

Постигая рекурсию. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ В массиве найти количество нечетных чисел расположенных после второго самого большего числа http://www.cyberforum.ru/cpp-beginners/thread122725.html
Срочно плиз помогите для курсача написать программку на C В массиве найти количество нечетных чисел расположенных после второго самого большего числа
C++ Дан файл f и g, компоненты которых являются целыми числами в машинном представлении. Записать в файл h числа из файлов f и g повторяющиеся в обоих фай Дан файл f и g, компоненты которых являются целыми числами в машинном представлении. Записать в файл h числа из файлов f и g повторяющиеся в обоих файлах ровно 2 раза. http://www.cyberforum.ru/cpp-beginners/thread122705.html
в текстовом редакторе создать файл, содержащий текст, длина которого не превышает 1000 символов (длина строки текста не должна превышать C++
С помощью текстового редактора создать файл, содержащий текст, длина которого не превышает 1000 символов (длина строки текста не должна превышать 70 символов). Имя файла должно иметь расширение DAT. Написать программу, которая: выводит текст на экран дисплея; определяет самую длинную последовательность цифр в тексте (любое количество пробелов и концы строк не прерывают последовательность...
C++ Нужно перевести код из Pascal в С
Помогите пожалуйста перевести паскалевский код на Си(без плюсов, хотя и с плюсами тоже можно). Заранее спасибо. Вот код: unit Interpol; interface uses Types;
C++ Количество элементов между минимумом и максимумом http://www.cyberforum.ru/cpp-beginners/thread122680.html
Пожалуйста помогите вот с этой задачей!!! Написать программу, которая для целочисленной матрицы 10х20 определяет среднее арифметическое ее элементов и количество положительных элементов в каждой строке.Матрица должна заполняться случайными цифрами, и должно быть динамическое выделение памяти.
C++ написать программку для расчета степени хай пипл! помогите пожалуйста решить задачку в с++ для начинающего, условия:написать программку для расчета степени: 2 в 5 степени, пишу в Dev c++ 9.4.4.2 подробнее

Показать сообщение отдельно
artem0n2
0 / 0 / 0
Регистрация: 28.10.2009
Сообщений: 67
01.05.2010, 14:28  [ТС]     Постигая рекурсию.
я согласен, что и без стека здесь всё отлично работает, но приходится выполнять прихоти препода... такое уж задание

Добавлено через 1 минуту
Vorona, я понял как оно работает, попробую сегодня вписать это в свою программу

Добавлено через 1 час 41 минуту
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
#include <stdio.h>
#include <conio.h>
#define n 15
#define size 15
 
int tos = 0;
int stck[size];
 
void push(int H){   
        if(tos==size){
                printf("Stack is full\n");
                return;
        }
        stck[tos] = H;
        tos++;
}
 
int pop(void){       
        if(tos==0){
                printf("Stack is empty\n");
                return 0;
        }
        tos--;
        return stck[tos];
}
 
void calcH(int *H, int X, int i, int N)
{
    H[i] = X * H[i - 1] - (i - 1) * H[i - 2];
    i++;
    
    if (i != n)
        calcH(H, X, i, N);
}
 
int main()
{
    int A[n];
    int X;
    int H[n];
    int N = 0;
    int S;
    int i;
    
    FILE *fin;
    
    if ((fin = fopen("F1.txt", "r")) == NULL)
    {
        printf("error reading file");
        getchar();
        return -1;
    }
    
    fscanf(fin, "%d", &N);
    if (N >= 15)
    {
          printf("ERROR!!!!!!");
          getchar();
          return -1;
          }
    for (i = 0; i < N; i++)
        fscanf(fin, "%d", &A[i]);
    
    /*while(!feof(fin))
        fscanf(fin, "%d", &A[n++]);*/
    
    fclose(fin);
        
    printf("Input X: ");
    scanf("%d", &X);
    
    H[0] = 1;
    H[1] = X;
    
    calcH(H, X, 2, N);
    
    for (i = 0, S = 0; i < N; i++)
        S += A[i] * H[i];
    
    for (i = 0; i <= N; i++)
        printf("H[%d] = %d\n", i, H[i]);
    
    FILE *fout;
    
   // for (i = 0; i <= n; i++){
     //  fprintf(fout, "H[%d] = %d\n", i, H[i]);}
    
    if ((fout = fopen("F2.txt", "w+")) == NULL)
    {
        printf("error writing file");
        getchar();
        return -1;
    }
    
    fprintf(fout, "%d\n", S);
    for (i = 0; i <= n; i++){
       fprintf(fout, "H[%d] = %d\n", i, H[i]);}
    push(H[0]);
    push(H[1]);
    push(H[2]);
    push(H[3]);
    push(H[4]);
    push(H[5]);
    push(H[6]);
    push(H[7]);
    push(H[8]);
    for(i = 0; i <= n; i++)
                printf("%d \n", pop());
    fclose(fout);
    
    getchar();
    getchar();
    return 0;
}
так правильно? я все элементы Н в стек добавил но кривовато, как H[i] добавлять, чтобы не писать по одному как у меня?

Добавлено через 1 минуту
ещё нужно сделать чтобы size = N или обойтись както без size и указать размер стека через N
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru