- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
西安交通大学实验报告
课程 计算机程序设计 实验名称 函数 第1页共18页
系 别—
_ 实
验 日
期2014 年3月28日
专业班级
__组别
实
验报告日期2014 年3月29日
姓 名
学号
报 告 退 发(订正、重做)
同组人
教
师审批签字
一、 实验目的
掌握函数的概念,使用函数的优越性,定义函数的方法以及调
用函数的方法。
二、 实验内容
第一题:编写字符串反转函数 mystrrev(),该函数的功能是
将指定字符串中的字符顺序颠倒排列。然后再编写主函数验证之。
源程序代码:
#include <iostream>
#include <cstring> using namespace std;
void mystrrev( char string[]); //自定义函数,反转字符串 int main() {
cout<< "请输入字符串(不多于个字符): "<<endl;
char in[81];
cin.get(in,81); //输入字符串,允许输入空格 mystrrev(in); //对字符串in ”执行反转函数 cout<<endl; return 0;
}
void mystrrev( char string[])
{
int m=strlen(string);
☆ 品敬
int mid;
for (int i=0;i<m/2;i++) //将字符串的前一半字符与后一半字符对应交换,因而只执行 m/2
( mid=string[i];
string[i]=string[m-i-1];
string[m-i-1]=mid;
}
string[m]= '\0' ; // 字符串结束
cout<<”反转结果为: \n" <<string;
}
2.实验结果:由于函数中有“ for (int i=0;i<m/2;i++) ”的语句,为避免该
循环条件不准确,对奇数和偶数个的字符均进行了检测, 并有对含空
格和符号的字符串的检测:
奇数:
血 C:\vz indow5\5yrtem32\cmd.exe
清输人于杵串(不多于丽个字符】;
▲
abcde
J
反转结果为:
edcba
请按任意键言蜷....
4 |{f_
偶数:
dB C 土% i nd ow5\5y5tem 32\c m d. ext
I -=r || E Ijrf^l
abcdef
反转结果为;
fedcba
请按任意键1^..,
▲
□
半:
4 Iff
1
含空格字符串:
请输后将串(不多于丽个字笋);.~~' ~
The best way to gain love is to g^ve it things*
3.问题分析:
起初没有用" .get ”,不够全面;
如果一直执行到i=m的话,就等于反转两次又回到了原来的字 符串顺序,因而要考虑只执行一半,而由于字符串长度有奇偶的问题, 所以容易错误;
第一次编写时,没有写sMng回]='\0';这使得输出结果混乱。
第二题:编写一组求数组中最大元素和最小元素的函数。其函 数原型为:
int imax(int array[],int count);
int imin(int array[],int count);
源程序代码:
#include <iostream>
using namespace std;
int imax( int array [], int count); // 求整型数组的最大元素
int imin( int array [], int count); // 求整型数组的最小元素 int main()
(
int num[40],n;
cout<< "请输入您要输入的整数个数,不超过个: ";
cin>>n;
cout<< "请输入每个整数:\n";
int i;
for (i=0;i<n;i++) //循环输入参与判断的整数
cin>>num[i];
cout<< "最大值为: "<<imax(num,n)<<endl;
cout<< "最小值为: "<<imin(num,n)<<endl;
return 0;
}
int imax( int array [], int count)
(
int m=array [0]; //将最大值的初始值定义为 array[0]
for (int i=1;i<count;i++) // 循环比较 m^jarray[i] 的大小
(
if (array [i]>m) m=array [i];
}
return m; //返回最大值
}
int imin( int array [], int count)
(
int l= array [0];
for (int i=1;i<count;i++)
(
if (arra
文档评论(0)