проблема с работой функции в цикле

  • Автор темы messsir
  • Дата начала
M

messsir

Гость
#1
доброго времени суток))
есть такая проблема... написал нужную мне функцию. в мейне проверил ее работоспособность с одной переменной. отлично работает.
но мне нужно, чтобы она работала некоторым количеством переменных 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;
}
сама программа:
Посмотреть вложение 1.c

заранее благодарю за помощь