查找最大元素
输入
对于输入的每个字符串,查找其中的最大字母,在该字母后面插入字符串“(max)”。
输出
输入数据包括多个测试实例,每个实例由一行长度不超过100的字符串组成,字符串仅由大小写字母构成。
样例
输入
abcdefgfedcba
xxxxx
a
输出
abcdefg(max)fedcba
x(max)x(max)x(max)x(max)x(max)
a(max)
解答
#include <stdio.h>
int main()
{
char str[100];
int a[100] = {0}; /*记录最大元素在字符串中出现的下标位置*/
char max;
int i, c = 0,j, k = 0;;
gets(str);
max = str[0]; /*首先将最大数定义为字符串的第一个字符*/
for(i = 1; str[i]!='\0'; i++)
{
if(str[i]>max) /*循环遍历字符串,若比max大就将其赋值给max并记录其下标(将a[]数组清零)*/
{
c = 0;
max = str[i];
a[0] = i;
}
else if(str[i] == max) /*若再次遇到最大元素就将其下标位置记录进数组a[]*/
{
a[++c] = i;
}
}
for(j = 0; str[j]!='\0';j++) /*将字符串逐个输出,同时遍历a[],若遇到记录的下标位置,则输出(“max”)*/
{
printf("%c", str[j]);
if(j == a[k])
{
printf("(max)");
k++;
}
}
return 0;
}
总结
课上的习题,其实不算难了,就是要有思路(这个思路也不算难了把……)