题目描述
对于输入的每个字符串,查找其中的最大字母,在该字母后面插入字符串“(max)”。
输入格式
输入数据包括多个测试实例,每个实例由一行长度不超过100的字符串组成,字符串仅由大小写字母构成。
输出格式
对于每个测试实例输出一行字符串,输出的结果是插入字符串“(max)”后的结果,如果存在多个最大的字母,就在每一个最大字母后面都插入"(max)"。
样例输入
abcdefgfedcba
axbxcxdxaxa
样例输出
abcdefg(max)fedcba
ax(max)bx(max)cx(max)dx(max)ax(max)a
一些数组上的问题搞不明白,以及不知道如何进行更改,提一点不知道正不正确的问题
T1,:段错误,这个数组段错误的原因。
T2:在进行第一次循坏后,第二次的数据是否为被第一次的数据影响,还有怎么重置第一次使用后的数组。
以下是我的代码:
#include<stdio.h>
#include<string.h>
int main()
{
char n;char arr[999];
while(~scanf("%c",&n)){
int q=0;
while(n!='\n'){
arr[q]=n;
q++;
}
int len=strlen(arr);
char a=-1;
for(int i=0;i<len;i++){
if(arr[i]>a){
a=arr[i];
}
}
int len1=len;
for(int i=len1-1;i>0;i--){
if(arr[i]==a){
for(int j=len-1;j>i;j--){
arr[j+5]=arr[j];
}
arr[i+1]={'('};
arr[i+2]={'m'};
arr[i+3]={'a'};
arr[i+4]={'x'};
arr[i+5]={')'};
len=len+5;
}
}
for(int i=0;i<len-1;i++){
printf("%c",arr[i]);
}printf("\n");
}
return 0;
}