50分求助!
查看原帖
50分求助!
735164
pengqiushi楼主2022/10/4 19:51

代码如下:

#include<iostream>
#include<cstring>
#define zm a[i]>='A'&&a[i]<='Z'||a[i]>='a'&&a[i]<='z'
using namespace std;
char a[105],l,p;
void cmp_1(){
	for(int i=0; i<l; i++)
		if(zm)
			cout<<".";
		else cout<<a[i];
	return;
}
void cmp_2(){
	int c=0;
	for(int i=0; i<l; i++)
		if(zm)
			c++;
	float t1=c,t2;
	int ans;
	t2=t1/3;
	ans=t1/3;
	if(t2-ans>=0.5)
		ans++;
	p=ans;
	for(int i=0; i<l; i++){
		if(zm&&ans){
			cout<<a[i];
			ans--;
		}
		else if(zm)
			cout<<".";
		else cout<<a[i];
	}
	return;
}
void cmp_3(){
	int ans=p;
	int c=0;
	for(int i=0; i<l; i++)
		if(zm)
			c++;
	/*for(int i=0; i<l; i++){
		if(zm&&ans){
			cout<<a[i];
			ans--;
		}
		else if(zm){
			p=i;
			break;
		}
		else cout<<a[i];
	}*/
	int flag=0;
	for(int i=p; i<l; i++)
		if(a[i]=='A'||a[i]=='E'||a[i]=='I'||a[i]=='O'||a[i]=='U'
		||a[i]=='a'||a[i]=='e'||a[i]=='i'||a[i]=='o'||a[i]=='u'){
			flag=1;
			break;
		}
	if(flag==0){
		float t1=c,t2;
		int ans;
		t2=t1/3*2;
		ans=t1/3*2;
		if(t2-ans>=0.5)
			ans++;
		//ans-=p+1;
		//cout<<ans;
		for(int i=0; i<l; i++){
			if(zm&&ans){
				cout<<a[i];
				ans--;
			}
			else if(zm)
				cout<<".";
			else cout<<a[i];
		}
	}
	else {
		for(int i=0; i<l; i++){
			if(zm&&ans){
				cout<<a[i];
				ans--;
			}
			else if(zm){
				p=i;
				break;
			}
			else cout<<a[i];
		}
		for(int i=p; i<l; i++)
			if(a[i]=='A'||a[i]=='E'||a[i]=='I'||a[i]=='O'||a[i]=='U'
			||a[i]=='a'||a[i]=='e'||a[i]=='i'||a[i]=='o'||a[i]=='u'){
				cout<<a[i];
				//break;
			}
			else if(zm)
				cout<<".";
			else cout<<a[i];
	}
	return;
}
int main()
{
	cin.getline(a,105);
	l=strlen(a);
	cmp_1();
	cout<<endl;
	cmp_2();
	cout<<endl;
	cmp_3();
	return 0;
}

评测记录

2022/10/4 19:51
加载中...