C/C++の宿題片付けます 125代目
■ このスレッドは過去ログ倉庫に格納されています
0413412
2009/05/04(月) 06:22:08負数に対する除算の丸め方向が違っても大丈夫なように変更
// (-1)/10 の結果は (0 余り -1) もしくは (-1 余り 9) のいずれか
char *myatoi(int n)
{
char buf[20+1]="", *p=&buf[sizeof(buf)/sizeof(buf[0])-1];
int sign=1, m;
if(n<0) sign=-1;
m=(10+sign*(n%10))%10;
*--p='0'+m;
for(n=sign*(n-sign*m)/10;n!=0;n/=10)
{
*--p='0'+n%10;
}
if(sign==-1) *--p='-';
return strdup(p);
}
■ このスレッドは過去ログ倉庫に格納されています