求助
  • 板块灌水区
  • 楼主nini0913
  • 当前回复22
  • 已保存回复22
  • 发布时间2024/3/18 22:14
  • 上次更新2024/3/18 22:45:15
查看原帖
求助
1062571
nini0913楼主2024/3/18 22:14

可以帮我看看aa函数和调用aa函数的地方哪错了吗?

例6.4-2 去掉后缀

题目描述

给定一个英文单词,如果该单词以er、ly或者ing后缀结尾, 则删除该后缀(题目保证删除后缀后的单词长度不为0且以上特殊单词最多只出现一次), 否则不进行任何操作。

输入格式

一个英文单词字符串,全为小写,无空格

输出格式

一个英文单词字符串

样例 #1

样例输入 #1

lovely

样例输出 #1

love

我的程序

#include <bits/stdc++.h>
using namespace std;
char a[10001];
void er(int i){
	if(i>1)for(int j=0;j<i;j++) cout<<a[j];
}
void ly(int i){
	if(i>1)for(int j=0;j<i;j++) cout<<a[j];
}
void ing(int i){
	if(i>2)for(int j=0;j<i;j++) cout<<a[j];
}
int aa(char x[3]){
	int lenx=strlen(x);
	for(int i=0;i<=strlen(a);i++){
		if(a[i]==x[0]) if(lenx==2)if(a[i+1]==x[1])return 0;
	}
	return 1;
}
int main(){
	cin>>a;
	char err[3]={'e','r'},lyy[3]={'l','y'},ingg[3]={'i','n','g'};
	int lena=strlen(a);
	for(int i=0;i<=lena;i++){
		if(a[i]=='e')if(a[i+1]=='r')if(aa(err)){er(i);return 0;}
		if(a[i]=='l')if(a[i+1]=='y')if(aa(lyy)){ly(i);return 0;};
		if(a[i]=='i')if(a[i+1]=='n')if(a[i+2]=='g')if(aa(ingg)){ing(i);return 0;}
	}
    return 0;
}

谢谢啦

2024/3/18 22:14
加载中...