若有生 2019-05-26 22:15 采纳率: 0%
浏览 872

求助:关于C语言两个乘法int溢出来 及其余基本类型溢出来的解决方法。

求助:关于C语言两个乘法int溢出来 及其余基本类型溢出来的解决方法。


#include<stdio.h>

main()
{
int a=3333333;
int b=4444444;
int c=a*b;

printf("c=%d",c);



}
  • 写回答

3条回答 默认 最新

  • 强化脑细胞 2019-05-27 09:09
    关注

    #include
    #include
    #include
    #define M 10005
    char s1[M],s2[M],s[M];
    int a[M],b[M],c[M];
    int main()
    {
    int i,j,m,n,k;
    while(~scanf("%s%s",s1,s2))
    {
    memset(c,0,sizeof(c));
    n=strlen(s1);
    m=strlen(s2);
    k=n+m;//保证相乘后的位数不会大于k
    printf("s1的长度=%d s2的长度=%d\n",n,m);
    /*把字符串s1和s2逆序用数字排列*/
    for(i=0; i a[i]=s1[n-i-1]-'0';
    for(i=0; i b[i]=s2[m-1-i]-'0';
    /* 乘运算*/
    for(i=0; i for(j=0; j c[i+j]+=a[i]*b[j];
    for(i=0; i {
    if(c[i]>=10)
    {
    c[i+1]+=c[i]/10;
    c[i]%=10;
    }
    }
    /*去除前导0*/
    i=k;
    while(c[i]==0) i--;
    /*判断两个非负数之积是否为0,以及逆序打印c[]*/
    if(i else
    {
    for(; i>=0; i--)
    printf("%d",c[i]);
    }
    printf("\n");
    }
    return 0;
    }
    这是一道大数乘法问题,输入用串,结果保存用数组

    评论

报告相同问题?

悬赏问题

  • ¥15 链接问题 C++LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型
  • ¥15 求学软件的前人们指明方向🥺
  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接