求助大佬为什么只有60分,谢谢
查看原帖
求助大佬为什么只有60分,谢谢
272309
QODGOD楼主2021/1/26 19:27
#include<bits/stdc++.h>
using namespace std;
int mod=1;
char str[100];
void m1(char *str){
	int flag=0;
	for(int i=strlen(str)-1;i>=0;i--){
		if(str[i]!='0') flag+=1;
		if(flag!=0) cout<<str[i];
	} 
}
void m2(char *str,int i){
	int flag=0;
	for(int j=i-1;j>=0;j--){
		if(str[j]!='0') flag++;
		if(flag!=0) cout<<str[j];
	}
	cout<<".";
	flag=0;
	if(strlen(str)-i==2&&str[strlen(str)-1]=='0'){
		cout<<'0';//这部是特判小数点后只有0的情况
		return;
	}
	for(int j=i+1;j<strlen(str);j++){
		if(str[j]!='0') flag++;
	}
	int a=strlen(str);
	for(int j=0;j<flag;j++){
		cout<<str[a-j-1];
	}
}
void m3(char *str,int i){
	int flag=0;
	for(int j=i-1;j>=0;j--){
		if(str[j]!='0') flag++;
		if(flag!=0) cout<<str[j];
	}
	cout<<"/";
	flag=0;
	for(int j=i+1;j<strlen(str);j++){
		if(str[j]!='0') flag++;
	}
	int a=strlen(str);
	for(int j=0;j<flag;j++){
		cout<<str[a-j-1];
	}
}
void m4(char *str,int i){
	int flag=0;
	for(int j=i-1;j>=0;j--){
		if(str[j]!='0') flag++;
		if(flag!=0) cout<<str[j];
	}
	cout<<"%";
	flag=0;
}
int main(){
	cin>>str;
	int i=0;
	for(i=0;i<strlen(str);i++){
		if(str[i]=='.'){
			mod=2;
			break;
		} 
		if(str[i]=='/'){
			mod=3;
			break;
		} 
		if(str[i]=='%'){
			mod=4;
			break;
		}
	}
	if(mod==1) m1(str);
	if(mod==2) m2(str,i);
	if(mod==3) m3(str,i);
	if(mod==4) m4(str,i);
} 
2021/1/26 19:27
加载中...