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

admin2018-10-23  51

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

选项

答案1 int MinPos=0; //初始化最小值位置 2 if(data==NuLL) //判断输入字符串是否为空 3 return -1; 4 char MinData=data[0];//设置字符串第一个字符为最小值 5 if(MinData==0) //判断第一个字符是否存在 6 return-1; 7 for(int i=1;data[i]!=0;i++) 8 { 9 if(data[i]<=MinData) 10 { 11 MinData=data[i]; //逐个判断每个字母是否小于标记字符 12 MinPos=i; //最小值位置 13 } 14 } 15 return MinPos;

解析 (1)该程序功能是找出字符串数组中最小的ASCII值。它的解题思路,用最小值变量标记第一个待找字符,把所有待找字符和标记字符逐个进行比较,并标记其当前最小值及其所在位置,从而找出最小值。
    (2)从己给部分源程序的main主函数开始入手,核心函数int fun(char*data)中的data参数为输入的字符串数组,其中MinPos为最小值位置。
    (3)MinPos变量首先指向字符串data的第一个字符,同时将标志位MinPos初始值赋为0。
    (4)然后利用for循环对每一个当前字符与MinPos标记的字符进行比较。
    (5)循环中将求得的最小数据data赋值给MinData,并将该数据项数组标志位赋给标志位MinPOS。
转载请注明原文地址:https://jikaoti.com/ti/lct0FFFM
0

最新回复(0)