代码实现

#include <stdio.h>

int main(){
    int a,b,d,sum;
    int ans[31],num=0;
    scanf("%d%d%d",&a,&b,&d);
    sum=a+b;
    do{
        ans[num++]=sum%d;
        sum/=d;
    }while(sum!=0);
    int i=num-1;
    for(i;i>=0;i--){
    printf("%d",ans[i]);
    }
    return 0;
}

错误记录

#include <stdio.h>
#include <math.h>
int main(){
    int a,b,d,sum;
    int ans=0,i=0;
    scanf("%d%d%d",&a,&b,&d);
    sum=a+b;
    for(i;sum!=0;i++){
        ans+=pow(10,i)*(sum%d); //用整数来表示结果
        sum/=d;
    }
    printf("%d",ans);
    return 0;
}

想省一个for循环,结果做加法更费空间,并且当数字过大时存在越界

#include <stdio.h>

int main(){
    int a,b,d,sum;
    int ans[31],num=0;
    scanf("%d%d%d",&a,&b,&d);
    sum=a+b;
    for(;sum!=0;){                //第一处
        ans[++num]=sum%d;
        sum/=d;
    }
    int i=num;
    for(i;i>0;i--){          
    printf("%d",ans[i]);
    }
    return 0;
}

//【第一处】当测试用例为 0 0 8 时会直接跳过,出现错误