模拟小数除法,为什么过不了第6个点,求大佬解答疑惑
查看原帖
模拟小数除法,为什么过不了第6个点,求大佬解答疑惑
932915
ai_user楼主2023/2/8 21:14
#include<stdio.h>
int main(){
	char c[20];
	scanf("%20s",c);
	int a[20];
	for(int i=0;i<20;i++){
		if(c[i]>='0'&&c[i]<='9'){
			a[i]=c[i]-'0';
		}else if(c[i]=='.'){
			a[i]=-1;
		}else{
			a[i]=0;
		}
	}
	int sum=0;
	for(int i=0;i<18;i++){
		if(a[i]!=-1){
			sum=sum*10+a[i];
			if(sum/23!=0){
				a[i]=sum/23;
				sum%=23;
			}else{
				a[i]=0;
			}
		}
	}
	for(int i=0;i<10;i++){
		if(a[i]!=-1){
			if(i==9){
				if(a[i+1]>=5){
					a[i]++;
				}
			}
			printf("%d",a[i]);
		}else{
			printf(".");
		}
	}
	return 0;
}
2023/2/8 21:14
加载中...