为什么输入00.00,输出0.
查看原帖
为什么输入00.00,输出0.
1009958
niuniudundun楼主2024/8/20 17:09
#include<iostream>
#include<cstring>
using namespace std;
void f1(char s1[],int len){
	while(s1[len-1]=='0'&&len>1) len--;
	for(int i=len-1;i>=0;i--){
		cout<<s1[i];
	}
}
char s3[101],s2[101];
void f2(char s1[],int len){//x.x
	int f=0,r=0;
	for(int i=0;i<=len;i++){
		s2[i]=s1[i];
		if(s1[i]=='.'){
			f=i,r=i;
			break;
		}
	}
	f1(s2,f);
	cout<<".";
	while(s1[f+1]=='0'&&len-f>=0) f++;
	for(int i=f+1;i<=len;i++){
		s3[i-f-1]=s1[i];
	}
	f1(s3,len-f-1);
}
void f3(char s1[],int len){
	int f=0,r=0;
	for(int i=0;i<=len;i++){
		s2[i]=s1[i];
		if(s1[i]=='/'){
			f=i,r=i;
			break;
		}
	}
	f1(s2,f);
	cout<<"/";
	for(int i=f+1;i<=len;i++){
		s3[i-f-1]=s1[i];
	}
	f1(s3,len-f-1);
}
void f4(char s1[],int len){
	for(int i=0;i<len;i++){
		s2[i]=s1[i];
	}
	f1(s2,len-1);
	cout<<"%"<<endl;
}
char s1[101];
int main(){
	cin>>s1;
	int len=strlen(s1);
	if(s1[0]=='0'&&len==1){
		cout<<0<<endl;
		return 0;
	}
	if(s1[len-1]=='%'){
		f4(s1,len);
		return 0;
	}
	for(int i=1;i<=len;i++){
		if(s1[i]=='.'){
			f2(s1,len);
			return 0;
		}
		if(s1[i]=='/'){
			f3(s1,len);
			return 0;
		}
	}
	f1(s1,len);
	return 0;
}

为什么输入00.00,输出0.

2024/8/20 17:09
加载中...