答案错误:50
原因:没有2个强制类型转换
#include <cstdio>
int main(){
int m;
while (scanf("%d",&m),m!=0){
int a,b;
scanf("%d%d",&a,&b);
long long c=(long long)a+(long long)b;
int z[10000],num=0;
do{
z[num]=c%m;
c=c/m;
num++;
}while (c!=0);
for(int i=num-1;i>=0;i--){
printf("%d",z[i]);
}
printf("\n");
}
return 0;
}
long long c=(long long)a+(long long)b;
或者可以把ab直接定义成unsigned int或者long long.
有个问题是为什么:
#include<stdio.h>
int main()
{
int a=10,m=13;
double b=0.0;
b=(double)a/m;
printf("%f",b);
return 0;
}
就只需要加一个类型转换,朋友猜测是浮点型除以整型后整型会自动变成浮点,有没有知道的大佬解答一下。