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

Почему выдает 0, и что надо исправить в вызове функции? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Поток с правами администратора http://www.cyberforum.ru/cpp-beginners/thread1311196.html
Доброго времени суток. Возникла такая проблема. Необходимо скиприровать файл при помощи CopyFile на диск C. Но файл не копируется. После долгих раздумий и поисков решения в интернете я пришёл к выводу что причина в отсутствии у программы права администратора. Но по замыслу, изночально программа запускается не от имени админа. Вопрос: как ПРОГРАМНО дать права администратора программе (или хотя...
C++ Вывести таблицу значений функции заданной разложением в ряд Тейлора Вычислить и вывести на экран в виде таблицы значения функции, заданной с помо... ряда Тейлора, на интервале от xнач до xкон с шагом d x с точностью \varepsilon. Таблицу снабдить заголовком и шапкой. Каждая строка таблицы должна содержать значение аргумента, значение функции и количество просуммированных членов ряда. Формулы надо переписывать с помощью редактора внизу страницы http://www.cyberforum.ru/cpp-beginners/thread1311193.html
C++ Корретное отображение русских символов
Здравствуйте, подскажите пожалуйста как моножно решить следующую проблемму: Написал программу, которая запрашивает и вывожит информацию. Вся проблемма в том, что выводится эта информация кракозябрами. Что нужно исправить? Погуглив решения проблемы не нашел (http://www.cyberforum.ru/cpp-beginners/thread1301150.html) Компилирую с помощью GNU GCC compiler #include<iostream> #include...
Деструктор при наследовании C++
Имеется 3 класса (базовый -> производный -> производный2) в классе базовый имеется переменная char* var; в производном тоже есть 1 переменная типа char* так вот, нужен ли деструктор в данном случае? С деструктором пишет мусор какой-то, убрал их - все отлично работает. Но я ещ еиспользую списки... т.е. объект класса производный2 помещаю в список...
C++/CLI Ошибки при компиляции кода с fstream http://www.cyberforum.ru/cpp-beginners/thread1311173.html
Здравствуйте! При работе с библиотекой fstream появились странные ошибки даже при компилировании этого кода #include "stdafx.h" #include <fstream> using namespace std; int main(array<System::String ^> ^args) { ifstream rfn; return 0;
C++ Каждый элемент матрицы умножить на сумму ее четных положительных элементов #include <stdio.h> #include <conio.h> void vvod(float a) { float b; printf("Введите матрицу:\n"); for (int i=0;i<3;i++) { for (int j=0;j<3;j++) { scanf("%f",&b);a=b; }} } void vyvod(float a) подробнее

Показать сообщение отдельно
arch-vile
 Аватар для arch-vile
3151 / 766 / 23
Регистрация: 12.07.2009
Сообщений: 3,184
26.11.2014, 22:51     Почему выдает 0, и что надо исправить в вызове функции?
Цитата Сообщение от Дарья1997 Посмотреть сообщение
Ели передаю по ссылке, то программа выдает ошибку и не запускается, если же с ретернами ,то все равно ноль выдает(
Значит еще косяк с алгоритмом все-таки есть. Ща гляну.
А чтобы вызвать функцию с параметром по ссылке, в вызове должно содержаться только имя переменной, а не PROI/10. Извиняюсь.

Добавлено через 1 минуту

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
#include <stdio.h>
#include <math.h>
int ch1,ch2,osn, summa,PROI,PR,pr ;
 
 
int Perevert(int x)//
{
    int xp = 0;
    while(x)
    {
        xp = xp*10 + x%10;
        x /= 10;
    }
    return xp;
}
 
int slozhenie(int ch1,int ch2,int osn,int summa)//????
{
    int zts,pts,o,o1,o2;
    summa=0; 
    zts=0;
    do 
    {
        o1=ch1%10;
        o2=ch2%10;
        o=(o1+o2+zts);
        if (o>=osn) 
        {
            pts=(o-osn);
            summa=(summa*10+pts);
            zts=(o/osn);
            ch1 /= 10;
            ch2 /= 10;
        }
        else
        {
            zts=(o/osn);
            summa=(summa*10+o);
            ch1 /= 10;
            ch2 /= 10;
        }          
    }
    while ((ch1>0)||(ch2>0));
    return Perevert(summa);
 
}
 
 
int proizvedenye(int ch1,int ch2,int osn,int  & PROI)// 
{
    int pro,ztspr,ptspr,o1,o2,PR,pr;
    do
    {
        pr=0;
        ztspr=0;
        o2=ch2%10;
        PR=0;
        do
        {
            o1=ch1%10;
            pro=o2*o1+ztspr;
 
            if (pro>=osn) 
            {
                ptspr=pro%osn;
                ztspr=pro/osn;
                ch1 /=10;
                pr=pr*10+ptspr;
            }
            else 
            {
                ptspr=pro%osn;
                pr=pr*10+ptspr;
                ztspr=pro/osn;
                ch1 /=10;
            }
        }
        while (ch1>0);
 
        PROI = slozhenie(Perevert(pr)*10,PR,osn,PROI);
        PR=PROI;
        ch2 /=10;//???
    }
    while (ch2>0);
    /*PROI /=10;
    return PROI;*/
 
    return PR;
}
int main()
{ 
 
    PROI = 1;
    printf("\n ch1: ");
    scanf("%d",&ch1);
    printf("\n ch2: ");
    scanf("%d",&ch2);
    printf("\n osn: ");
    scanf("%d",&osn);
    printf("%d",proizvedenye(ch1,ch2,osn,PROI));
 
    getchar();
    getchar();
}
Вот так работает..

Добавлено через 6 минут
У вас было так (в функции proizvedenie):
C++
1
slozhenie(Perevert(pr)*10,PR,osn,PROI);
То есть функция сложение выполняется, но результат ее выполнения нигде не используется.
Надо так:
C++
1
PROI = slozhenie(Perevert(pr)*10,PR,osn,PROI);
И тоже самое в функции slozhenie:
C++
1
Perevert(summa);
Функцию переверт вызываете, но значение не используете.
Я сделал так:
C++
1
return Perevert(summa);
 
Текущее время: 20:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru