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

admin2016-10-28  13

问题 使用VC6打开考生文件夹下的源程序文件modi2.cpp。请完成函数fun(char*data),此函数的功能是,找出字符串数组中最小的ASCII值,如果有相同变量,则输出最后一个所在的位置;如果字符串为空,则返回-1;或者不存在时也返回-1。
注意:请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。计算数字如果第一个字母最小,则返回0。依次增加。
#include<iostream.h>
int fun(char*data)
{
}
void main()
{
char str[1024];
cout<<"请输入一行英文字符串:\n";
cin.getline(str,1024);
cout<<"最小的字母出现在距离头部"<<fun(str)<<"个字母处"<<endl;
}

选项

答案int MinPos=0;//初始化最小值位置 if(data==NULL)//判断输入字符串是否为空 return-1; char MinData=data[0];//设置字符串第一个字符为最小值 if(MinData==0) //判断第一个字符是否存在 return-1; for(int i=1;data[i]!=0;i++) { if(data[i]<=MinData) { MinData=data[i];//逐个判断每个字母是否小于标记字符 MinPos=i;//最小值位置 } } return MinPos;

解析 (1)MinPos变量首先指向字符串data的第一个字符,同时将标志位MinPos初始值赋为0。
(2)然后利用for循环对每一个当前字符与MinPos标记的字符进行比较。
(3)循环中将求得的最小数据data赋值给MinData,并将该数据项数组标志位赋给标志位MinPos。
转载请注明原文地址:https://kaotiyun.com/show/xONp777K
0

最新回复(0)