使用VC++6.0打开考生文件夹下的源程序文件2.cpp。请完成函数fun(char*data),此函数的功能是找出字符串数组中最大的ASCII值,如果有相同变量,则输出最后一个所在的位置;如果字符串为空,则返回-1;或者不存在时也返回-1。 注意

admin2021-06-10  22

问题 使用VC++6.0打开考生文件夹下的源程序文件2.cpp。请完成函数fun(char*data),此函数的功能是找出字符串数组中最大的ASCII值,如果有相同变量,则输出最后一个所在的位置;如果字符串为空,则返回-1;或者不存在时也返回-1。
    注意:不能修改函数的其他部分。计算数字如果第一个字母最大,则返回0。依次增加。
    试题程序:
#include
int fun(char*data)
{
}
void main()
{
char source[1024];
cout<<"请输入一行英文字符串:\n";
cin.getline(source,1024);
cout<<"最大的字母出现在距离头部"<个字母处"<}

选项

答案int fun(char*data) { int MaxPos=0; if(data==NULL) return-1: char MaxData=data[0]; if(MaxData==0) return-1; for(int i=1;data[i]!=0;i++) if(data[i])=MaxData) { MaxData=data[i]; MaxPos=i: } return MaxPos; }

解析 本题考查的是查找最大值算法。根据题意,首先检查传入参数的合法性,如不合法或为空串,则返回-1,然后通过for循环遍历整个字符串,将最大值字符保存到MaxData内,并将最大位置保存给MaxPos,最后返回MaxPos。
转载请注明原文地址:https://kaotiyun.com/show/D8fp777K
0

最新回复(0)