77范文网 - 专业文章范例文档资料分享平台

西安交大C++程序设计第四章作业2(3)

来源:网络收集 时间:2019-03-11 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

3.问题分析:

此题中虽然定义了枚举类型,然而实际过程中,感觉并没有使用到枚举,它的存在似乎没有意义,不知道是不是方法用错了。

五、第五题: 5、编写函数,该函数实现任意一个正整数是否为完全数。再编写函数输出完全数等于各因子之和的式子。最后找出2~100000之内所有完全数。所谓完全数是其各因子之和正好等于本身的数,例如输出格式如下的完全数:6=1+2+3,28=1+2+4+7+14。

#include using namespace std;

void panduan(int i)//自定义函数,用于判断i是不是完全数 {

int m,s=0;

int *num=new int[i];//动态分配数组空间,虽然仍然大于实际需要值,但数组大小基本上得到了控制 for(m=1;m<=i/2;m++) {

if(i%m==0) {

num[s]=m;

s++;//s最终为因子个数 } }

int sum=0; int n;

for(n=0;n

sum=sum+num[n];//sum最终为各因子之和 if(sum==i) {

cout<

for(n=0;n

delete []num;//释放数组空间 }

int main() {

int i;

cout<<\从2到的100000完全数如下:\\n\; for(i=2;i<100000;i++) panduan(i); return 0; }

2.实验结果:

3.问题分析:

在做这道题的过程中,起初出现了一个奇怪的现象:如果上限由100000改为10000,则程序正常运行,但对于100000,会显示出现问题:

后来检查不出问题时,发现了一直以来一个不良习惯:不编写释放数组空间的语句。试着加上这一语句之后再运行时,发现程序能够正常

进行了,因而认为应该是这句语句的作用,但并不知道具体的原因。 六、第六题:6、(必做题)编写一个实现文章(即字符串)单词统计功能的程序,要求:输入一系列英文单词字符串(即带空格的字符串),单词间用空格隔开或逗号或句号隔开。请统计该字符串中单词出现的频率,并按词典顺序输出单词及其频率。必须用结构体方法实现。

1.源程序代码:

#include #include using namespace std; struct frequency {

char word[20]; int n;

}danci[100]; //定义结构体变量danci,它由单词及其频率两个量组成 struct w {

char a[20];

}in[100];//定义了个元素的字符串组,用于储存输入的句子中的每个单词 int fre(char nu[],w in[],int mu)//统计每个单词的频率函数 {

int i,pl=0;

for(i=0;i

if(strcmp(nu,in[i].a)==0) pl++; }

return pl; }

void main() {

char article[501]; cout<<\输入句子:\\n\; cin.get(article,500);

int l=strlen(article);//取其长度,定义为整型数l int i,j,k,m;

for(i=0,j=0;i

char a=*(article+i);//a定义为article第i个字符,

if((a<='z'&&a>='a')||(a<='Z'&&a>='A'))//判断若已经是字母了的话就进入循环记录接下来的单词内容,否则继续i增加直到走完非字母字符到达字母

{

m=0; k=i;

char b=*(article+k);

while((b<='z'&&b>='a')||(b<='Z'&&b>='A'))//当它是字母就循环,若已经不是字母了,就跳出循环 {

in[j].a[m]=b; k++; m++;

b=*(article+k);

};//一直加直到遇到非字母字符时停止

in[j].a[m]='\\0';//这个单词转录完了之后,将最后一个字符写为?\\0'以防乱码

j++;//下一个单词的写入

i=k-1;//由于在小循环中k最后一次循环多加了一个,所以在这里扣除,赋给i,i就不再执行单词的中间字母部分,只需对非字母部分判断直到遇到下一个单词的开头字母 }

}//至此,已记录所有单词到in[].a中。

int mu=j;//记录下单词数目,共有单词mu个(注意到最后j加了) //然后将每一个不同的单词储存在danci[].word里 int s=0;

for(i=0;i

j=0;

while(j

strcpy(danci[s].word,in[i].a); s++; }

}//至此将所有不同单词依次储存到了danci.word中,s为不同单词个数

//然后排序

for(i=0;i

k=i;

for(j=i+1;j

if(strcmp(danci[j].word,danci[k].word)<0) k=j; if(k!=i) {

frequency tmp=*(danci+i); *(danci+i)=*(danci+k); *(danci+k)=tmp; } } //

cout<<\统计结果为:\\n\;

for(i=0;i

danci[i].n=fre(danci[i].word,in,mu);

cout<<\单词: \<

2.实验结果:

(1)按照题目要求的检验:

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库西安交大C++程序设计第四章作业2(3)在线全文阅读。

西安交大C++程序设计第四章作业2(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/516122.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: