坤坤藤椒牛肉面 2023-11-27 14:04 采纳率: 83.3%
浏览 14
已结题

c语言用数组使两个十五位整数相加,并输出结果

img


以下是我写的代码,但是输出错误,我找不到在哪,大家看看错哪

img

实在是找不出来错哪
再给大家看看输出错误结果

img

  • 写回答

3条回答 默认 最新

  • 隐蔽之鲷 2023-11-27 15:20
    关注

    使用字符数组操作

    
    int main()
    {
        char a[16], b[16]; //字符数组有结束符故长度+1
        int c[16] = { 0 };
        int i, k = 0;
        //for (i = 0; i < 15; i++)
            scanf("%s", a);            //字符串的操作,视为字数组依次赋值                   
            getchar();
        //for (i = 0; i < 15; i++)
            scanf("%s", b);
        for (i = 14; i >= 0; i--)
        {
    
            if (k + a[i] + b[i] -'0' -'0' >= 10)   //字符数字(编码是好像是53开始,具体是多少我忘了)转换为数字 -‘0’
            {
                c[i + 1] = ((k + a[i] +b[i]) - 10 - '0' - '0');
                k = 1;
                //c[i] = 1;
            }
            else
            {
                c[i + 1] = k + a[i] + b[i] - '0' - '0';
                k = 0;
            }       
        }
        for (i = 0; i < sizeof(c) / sizeof(c[0]); i++) {
            if (c[0] == 0 && i==0) {                    //首位0不显示                                              
                continue;
            }
            printf("%d",c[i]);
        }     
        return 0;
    }
    

    测试如下:

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月29日
  • 已采纳回答 11月27日
  • 创建了问题 11月27日