日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言大整数除法思路,大整数除法

發(fā)布時間:2025/4/5 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言大整数除法思路,大整数除法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

該樓層疑似違規(guī)已被系統(tǒng)折疊?隱藏此樓查看此樓

//兩個串表示數(shù)的除法,結(jié)果精確到小數(shù)點后第n位

char?*sdivf(char?*u,?char?*v,?int?n)

{

char?*p,?*f,?*r,?*q?;

unsigned?int?i,?lu,?lv,?lr,?iw,?c,?h?;

int?kh,?j?;

lu?=?strlen(u)?;

lv?=?strlen(v)?;

f?=?(char?*)malloc((unsigned?int)(lu?+?n?+?3)?*?sizeof(char))?;

q?=?(char?*)malloc(sizeof(char))?;

for?(i?=?0;?i?

f[i]?=?'\0'?;

r?=?(char?*)malloc((unsigned?int)(lv?+?2)?*?sizeof(char))?;

for?(i?=?0;?i?

r[i]?=?'\0'?;

for?(iw?=?0;?iw?

{

if?(iw?

{

cdel0(r)?;

lr?=?strlen(r)?;

r[lr]?=?u[iw]?;

r[lr?+?1]?=?'\0'?;

}

else?if?(iw?>?lu)

{

cdel0(r)?;

q[0]?=?'0'?;

if?(scmp(r,?q)?==?0)

{

break?;

}

lr?=?strlen(r)?;

r[lr]?=?'0'?;

r[lr?+?1]?=?'\0'?;

}

else

{

f[lu]?=?'.'?;

continue?;

}

kh?=?0?;

while?(scmp(r,?v)?>=?0)

{

p?=?r?;

r?=?ssub(p,?v)?;

++kh?;

}

f[iw]?=?kh?+?'0'?;

}

if?(iw?==?lu?+?n?+?2)

{

if?(f[lu?+?n?+?1]?>=?'5')

{

f[lu?+?n?+?1]?=?'\0'?;

c?=?1?;

for?(j?=?lu?+?n;?j?>=?0;?--j)

{

if?(c?==?0)

{

break?;

}

if?(f[j]?==?'.')

{

continue?;

}

h?=?f[j]?-?'0'?+?c?;

if?(h?>?9)

{

h?=?h?-?10?;

c?=?1?;

}

else

c?=?'\0'?;

f[j]?=?h?+?'0'?;

}

}

else

f[lu?+?n?+?1]?=?'\0'?;

}

free(r)?;

free(p)?;

q?=?NULL?;

free(q)?;

cdel0(f)?;

return(f)?;

}//end?sdivf()

//兩個串表示數(shù)的除法,結(jié)果分別用整商與余數(shù)表示

char?*sdivkr(char?*u,?char?*v,?char?**rout)

{

char?*f,?*r?;

unsigned?int?i,?lu,?lv,?lr,?iw?;

int?kh?;

lu?=?strlen(u)?;

lv?=?strlen(v)?;

f?=?(char?*)malloc((unsigned?int)(lu?+?1)?*?sizeof(char))?;

for?(i?=?0;?i?

f[i]?=?'\0'?;

r?=?(char?*)malloc((unsigned?int)(lv?+?2)?*?sizeof(char))?;

for?(i?=?0;?i?

r[i]?=?'\0'?;

for?(iw?=?0;?iw?

{

cdel0(r)?;

lr?=?strlen(r)?;

r[lr]?=?u[iw]?;

r[lr?+?1]?=?'\0'?;

kh?=?0?;

while?(scmp(r,?v)?>=?0)

{

r?=?ssub(r,?v)?;

++kh?;

}

f[iw]?=?kh?+?'0'?;

}

cdel0(r)?;

*rout?=?r?;

cdel0(f)?;

return(f)?;

}//end?*sdivkr()

//調(diào)用上述函數(shù)實現(xiàn)兩任意長正整數(shù)任意指定精度的算術(shù)計算器程序

int?main(int?argc,?char?*argv[])

{

char?*p,?*r?;

int?n?;

if?(argc?!=?4)

{

if?(argc?!=?3)

printf("\n>>\"order?n1?op?n2\"?or?n?!?")?;

exit(0)?;

}

cdel0(argv[1]);

if?(cchkdig(argv[1])?==?0)

{

printf("Input?data?error,?Input?again!")?;

exit(0)?;

}

cdel0(argv[3])?;

if?(cchkdig(argv[3])?==?0)

{

printf("Input?data?error,?Input?again!")?;

exit(0)?;

}

if?(strcmp(argv[2],?"+")?==?0)

{

printf("%s",?p?=?sadd(argv[1],?argv[3]))?;

free(p)?;

}

else?if?(strcmp(argv[2],?"-")?==?0)

{

printf("%s",?p?=?ssub(argv[1],?argv[3]))?;

free(p)?;

}

else?if(strcmp(argv[2],?"*")?==?0)

{

printf("%s",?p=smut(argv[1],?argv[3]))?;

free(p)?;

}

else?if(argv[2][0]?==?'/'?&&?strlen(argv[2])?==?1)

{

if?(argv[3][0]?==?'0')

{

printf("error!devided?by?zero!!\n")?;

exit(0)?;

}

p?=?sdivkr(argv[1],?argv[3],?&r)?;

printf("k?=?%s?r?=?%s",?p,?r)?;

free(p)?;

free(r)?;

}

else?if?(argv[2][0]?==?'/'?&&?strlen(argv[2])?>?1)

{

if?(argv[3][0]?==?'0')

{

printf("error!devided?by?zero!!\n")?;

exit(0)?;

}

argv[2][0]?=?'\0'?;

cdel0(argv[2])?;

if?(cchkdig(argv[2])?==?0)

{

printf("Input?data?error,?Input?again!")?;

exit?(0)?;

}

n?=?atoi(argv[2])?;

printf("%s",?p?=?sdivf(argv[1],?argv[3],?n))?;

free(p)?;

}

return?0?;

}

《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的c语言大整数除法思路,大整数除法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。