| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 351 人关注过本帖
标题:关于长整数的加 乘,有点问题请教!!!
取消只看楼主 加入收藏
wanglf
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-9-10
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:1 
关于长整数的加 乘,有点问题请教!!!
#include<stdio.h>
#include<string.h>
#define LIMIT 80
void jia(char *ch1,char *ch2,char *ch3)
{
    int len1=strlen(ch1),len2=strlen(ch2),len3,i,tmp,num1[LIMIT]={0},num2[LIMIT]={0},num3[LIMIT]={0};
    for(i=len1-1;i>=0;i--)
        num1[len1-1-i]=ch1[i]-48;
    for(i=len2-1;i>=0;i--)
        num2[len2-1-i]=ch2[i]-48;
    i=0,tmp=0,len3=len1>len2?len1:len2;
    while(i<len3)
    {
    num3[i]=num1[i]+num2[i]+tmp;
    tmp=0;
    if(num3[i]>=10){tmp=num3[i]/10;num3[i]%=10;}
    i++;
    }
    if(tmp!=0){num3[i]=tmp;i++;}
    len3=i;
    for(i=len3-1;i>=0;i--) ch3[len3-1-i]=num3[i]+48;
    ch3[len3]='\0';

}
    void cheng(char *ch1,char *ch2,char *ch3)
    {
        int i,j,len1=strlen(ch1),len2=strlen(ch2),len3,
                temp,num1[LIMIT]={0},num2[LIMIT]={0},num3[LIMIT]={0};
        for(i=len1-1;i>=0;i--)
            num1[len1-1-i]=ch1[i]-48;
        for(i=len2-1;i>=0;i--)
            num2[len2-1-i]=ch2[i]-48;
        for(i=0;i<len1;i++)
        {
            temp=0;
        for(j=0;j<len2;j++)
            {
                        num3[i+j]+=num1[i]*num2[j]+temp;
              temp=0;
              if(num3[i+j]>=10)
              {
                  temp=num3[i+j]/10;
                  num3[i+j]%=10;
              }
            }
        while(temp!=0)
            {
                num3[i+j]+=temp;temp=num3[i+j]/10;j++;
            }
        
        }
        len3=len1+len2;
        while(len3>1&&num3[len3-1]==0)
            len3--;
        for(i=0;i<len3;i++)
            ch3[len3-1-i]=num3[i]+48;
        ch3[len3]='\0';

    }
   
     void main()
     {
         char ch1[LIMIT],ch2[LIMIT],ch3[LIMIT];
         void jia(char *ch1,char *ch2,char *ch3);
         void cheng(char *ch1,char *ch2,char *ch3);
         printf("请输入第一个数\n");
             scanf("%s",ch1);
         printf("请输入第二个数\n");
         scanf("%s",ch2);
         printf("\n");
         jia(ch1,ch2,ch3);
         printf("两数之和:%s\n",ch3);
         cheng(ch1,ch2,ch3);
         printf("两数之积为:%s\n",ch3);
         getchar();
         getchar();
}
    这是一个长整数加乘的代码问题有二:
               1 需要一个界面类似这样
               ("*********主菜单*********\n");
               ("*       1 两数相加    *\n");
               ("*       2 两数相乘    *\n");
              ("*       3 退出         *\n");
               ("*************************\n");按相应的数字能有相应的功能      
              2 从文件读入长整数,并将运算结果保存到文件中。
 希望哪位大侠把问题都解决了,或者先一个都行,小女子急需啊,把代码改了,回我就行。再次感谢!!!
搜索更多相关主题的帖子: include 
2012-09-10 12:45
wanglf
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-9-10
收藏
得分:0 
回复 2楼 zhaojigao
谢谢你哈,我自己新人一个,搞了好久都不行。还有就是只要把运算结果保存到文件中,并能读取就行。麻烦你在改一下吧,我真的什么都不懂。谢谢啊
2012-09-10 18:44
快速回复:关于长整数的加 乘,有点问题请教!!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.042865 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved