qq_58625182 2021-08-21 09:11 采纳率: 100%
浏览 44
已结题

能帮帮忙看看这几行代码怎么错了吗?

#include <stdio.h>
#include <stdlib.h>
typedef struct{
char num[2000];//大数
int count;//大数的位数
}data;
int main(void){
data multi(data temp,int elementx);
data temp={{'0','0','5'},3};
int i;
temp=multi(temp,3);
for(i=temp.count-1;i>=0;i++)
printf("%c",temp.num[i]);
return 0;
}
data multi(data temp,int elementx){
int i,t;
data tempx={{0}};
for(i=0;i<temp.count;i++){
t=(temp.num[i]-'0')*elementx;
tempx.num[i]+=(t%10+'0');
tempx.num[i+1]+=t/10;
if(i==temp.count-1&&t/10>0){
temp.count++;
tempx.num[i+1]+='0';
}
}
tempx.count=temp.count;
return tempx;
}
这写的是一个个位数与一个大数相乘的程序,想了半天不知道哪里错了

展开全部

  • 写回答

1条回答 默认 最新

  • Pliosauroidea 2021-08-21 09:33
    关注
    #include <stdio.h>
    #include <stdlib.h>
    typedef struct
    {
        char num[2000]; //大数
        int count;      //大数的位数
    } data;
    int main(void)
    {
        data multi(data temp, int elementx);
        data temp = {{'0', '0', '5'}, 3};
        int i;
        temp = multi(temp, 3);
        for (i = temp.count - 1; i >= 0; i--)
            printf("%c", temp.num[i]);
        return 0;
    }
    data multi(data temp, int elementx)
    {
        int i, t;
        data tempx = {{0}};
        for (i = 0; i < temp.count; i++)
        {
            t = (temp.num[i] - '0') * elementx;
            tempx.num[i] += (t % 10 + '0');
            tempx.num[i + 1] += t / 10;
            if (i == temp.count - 1 && t / 10 > 0)
            {
                temp.count++;
                tempx.num[i + 1] += '0';
                break;
            }
        }
        tempx.count = temp.count;
        return tempx;
    }
    

    输出循环i--写成i++了
    最高位处理有点问题我也改了一下
    有帮助望采纳

    展开全部

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    qq_58625182 2021-08-21 10:20

    i--抄的时候抄错了,但是为什么最高位那里要加一个break呢

    回复
    Pliosauroidea 回复 qq_58625182 2021-08-21 10:21

    因为你已经扫到原数组的最高位了,原数组后面一定没有东西了,所以处理完目标数组的最高位就直接break
    你之前好像是因为没有break所以多走了一圈,目标数组的最高位被写了两遍

    回复
    qq_58625182 回复 Pliosauroidea 2021-08-21 11:19

    感谢解答

    回复
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 8月28日
  • 已采纳回答 8月21日
  • 创建了问题 8月21日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部