Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: проблема с работой функции в цикле
Форум программистов > Системное программирование > C, С++ и С Builder > Общие вопросы по С и С++
messsir
доброго времени суток))
есть такая проблема... написал нужную мне функцию. в мейне проверил ее работоспособность с одной переменной. отлично работает.
но мне нужно, чтобы она работала некоторым количеством переменных m, числовое значение которых формируется из указателя *mes по 6 разрядов. то есть, если в mes={1,2,3,4,5,6,7,8,9,1,2,3}, то должно сформироваться m в цикле два раза.... один раз m будет равна 123456, а второй раз m будет равна 789123. m формируется отлично, а вот при отправке m в функцию crypt все начинает работать неправильно.

собственно, вот цикл
while(i<size_mes){
                m=0;
                if((size_mes-i)<6)
                        for(; i<size_mes; ++i)
                                m=m*10+mes[i];
                else{
                        m=m*10+mes[i];
                        ++i;
                        m=m*10+mes[i];
                        ++i;
                        m=m*10+mes[i];
                        ++i;
                        m=m*10+mes[i];
                        ++i;
                        m=m*10+mes[i];
                        ++i;
                        m=m*10+mes[i];
                        ++i;
                }
                printf("\nm=%ld ", m);
                c=crypt(m, num_e, n, size);
                printf("\n%ld ", c);

        }

size_mes - длина указателя mes
вот функция crypt:
unsigned long int crypt(unsigned long int m, const char *num, const unsigned long int n, const int size){
        unsigned long int c;
        c=m;
        i=0;
        if(num[i]==1)
                i=1;
        else
                i=0;
        for(; i<size; ++i){
                if(num[i]){
                        m=(m*m)%n;
                        m=(m*c)%n;
                }
                else{
                        m=(m*m)%n;
                }
        }
        return m;
}


сама программа:
Нажмите для просмотра прикрепленного файла

заранее благодарю за помощь
dpi
Поменяй в функции индекс i на j
messsir
а))) я тупанул, спасибо большое)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.