后来在尝试过程中改成了:
#include <bits/stdc++.h>
using namespace std;
void max(char a[],int len)
{
int i=0,j=0,p,t,c;
for(i=0;i<len-1;i++)
{
p=i;
for(j=i+1;j<len;j++)
{
if(a[j]<a[p]) p=j;
}
if(p!=i)
{
t=a[p];
a[p]=a[i];
a[i]=t;
}
}
}
int main()
{
char string[81];
int len,c;
cin.getline(string,81);
len=strlen(string);
max(string,len);
cout<<string[len-1]<<endl;
return 0;
}
结果:
因为你把char的值给了int,然后输入出int,则会输出这个字符的ASCII编码值。
因此会输出一个奇怪的数。
你将函数改为void后,不会返回任何值。但你将字符串已经按照小到大排列,因此输出最后一个字符就是最大值。
并且字符串是char型,不会输出ASCII的编码值,而是输出字符。