1、aaabc; string comString = a,aa, bc; vector comStr (comString+0, comString+3); resultStr(1, begin); string:iterator sou_sIt = souStr.begin();iterator result_sIt = resultStr.begin(); searchAll(souStr, comStr, resultStr, sou_sIt, result_sIt); return 0; /*功能函数部分*/v)iterator sIt = str.begin(); v.clear();
2、 while( sIt != str.end() v.push_back(*(sIt+); resultStr, result_sIt) if(sou_sIt = souStr.end() int sumPower = 0; for(vectoriterator result_begin_sIt = resultStr.begin(); result_begin_sIt result_sIt; result_begin_sIt+) cout*result_begin_sIt if(*result_begin_sIt = ) sumPower += 5; else if(*result_begi
3、n_sIt = sumPower += 12; sumPower += 9;bcd sumPower += 21;cd sumPower += 15; coutsumPowerendl; return; for(vectoriterator com_begin_sIt = comStr.begin(); com_begin_sIt souStringLastLenth) break; int bitSouString = souStr.size() - souStringLastLenth; string partSouString = souStr.substr(bitSouString,
4、comStringLenth); if(partSouString = *com_begin_sIt) int k; if(result_sIt = resultStr.end() result_sIt = resultStr.insert(result_sIt, *com_begin_sIt); else *result_sIt = *com_begin_sIt; for(k = comStringLenth; k 0; k-) sou_sIt+; searchAll(souStr, comStr, resultStr, sou_sIt, +result_sIt ); sou_sIt-; r
5、esult_sIt-; 题2,中分值题(21分)数字黑洞问题:任意一个五位数,调整其各位数字,分别组成一个最大数字和一个最小数字;将其差值再作为新的数(如果不足5位,则前边补0),再次进行上一操作,直到出现循环。例如41679,首次得差值82962,继续进行,则产生75933,63954,61974。由此构成一个循环数。例如本题:输入:41679输出:82962,75933,63954,61974请编程实现,输出所有五位数的循环圈。#includestdlib.hqueuecmath/冒泡排序法void sortBullet(int arry, int n) int flag; for(int
6、 j= 1; j n; j+) flag = 0; for(int i = 1; i arryi) int tmp = arryi; arryi = arryi - 1; arryi -1 = tmp; flag+; if(flag = 0) break;long getMax(int arry) long Max = 0; for(int i = 4; i = 0; i-) Max += arryi*pow(10, i); return Max;long getMin(int arry) for(int i = 0;= 4 ; Max += arryi*pow(10, 4-i);void l
7、ongToIntArry(long num, int arry) i 5; arryi = 0; queue numqueue; while(1) int n = num%10; numqueue.push(n); if( num 10) break; num = num/10; int j = 4; while(!numqueue.empty() int elem; elem = numqueue.front(); numqueue.pop(); arryj = elem; j-;int compareArry(long num1, long num2) int Arry15, Arry25
8、; longToIntArry(num1, Arry1); longToIntArry(num2, Arry2); sortBullet(Arry1, 5); sortBullet(Arry2, 5); for(int i = 0 ; if(Arry1i != Arry2i) return 0; return 1;int judgeBreak(vectornumArry, long numDiffer)iterator sIt = numArry.begin(); while(sIt != numArry.end() if(compareArry(*sIt, numDiffer) return
9、 1; sIt+; /主函数部分 /long number ;/= 41679 ; numMery; for(long number = 10000 ; number = 99999; number+) int numArry5;number : longToIntArry(number, numArry); /*for(int I= 0; I I+)numArryI; */ int test = 0; long numMax, numMin; numMery.clear(); numMery.push_back(number); while(1) sortBullet(numArry, 5)
10、; numMax = getMax(numArry); numMin = getMin(numArry); /coutnumMaxnumMin; long numDiffer = numMax - numMin;numDiffer 3) /break; /test+; 题3,中分值题(15分)某单位将要组织一次旅游,已知各成员及其目的地(见“人员信息.txt”),要求根据人员信息,将各地的成员信息统一列出,以供统筹安排,并将结果输出到文件“人员信息2.txt”中。注:题中不要求城市,或人员信息的顺序。/人员信息.txt的内容如下(应为一个单独的文本文件):赵一,北京钱二,上海孙三,南京李四,北
11、京周小五,西安吴天,南京郑小七,上海赵八,北京王心凌,天津刀郎,北京例本题的输出应为:北京4刀郎李四赵八赵一上海2钱二郑小七南京孙三吴天西安1周小五天津王心凌fstreamvoid charToString(const char *pt, vectorstrV) strV.clear(); string str(pt); for(int n = 0; n str.size(); ) string charStr = str.substr(n, 2); strV.push_back(charStr); n=n+2;class Citypublic: City():num(0) int num;
12、string clientName73; City Beijing; City Shanghai; City Nanjing; City Tianjing; City Xi_an; ifstream file(人员信息.txt ofstream file2(人员信息2.txt strV; char buffer20;file.eof() file.getline(buffer, 16); charToString(buffer, strV); int j; for(int i = 0; 3; if(strVi = ,) break; if(北京 = strVi+1 + strVi+2) for
13、(j = 0; i; Beijing.clientNameBeijing.numj = strVj; Beijing.num+; else if(上海 Shanghai.clientNameShanghai.numj = strVj; Shanghai.num+;南京 Nanjing.clientNameNanjing.numj = strVj; Nanjing.num+;天津 Tianjing.clientNameTianjing.numj = strVj; Tianjing.num+;西安 Xi_an.clientNameXi_an.numj = strVj; Xi_an.num+; in
14、t NUM; int namecounter; file2nBeijing.num for(NUM = 0; NUM Beijing.num ; NUM+) for(namecounter = 0; namecounter namecounter+) file2Beijing.clientNameNUMnamecounter; file2Shanghai.numShanghai.num ;Shanghai.clientNameNUMnamecounter;Nanjing.numNanjing.num ;Nanjing.clientNameNUMnamecounter;Tianjing.num
15、Tianjing.num ;Tianjing.clientNameNUMnamecounter;Xi_an.numint charToInt(char a) return a-0 cardNum; char a; while(a= getch() )!= r if( a & a = 10) sum2 += (*sIt)*2 - 9); sum2+= (*sIt)*2); chooseBrench+; cout if(sum1+ sum2)%10)失败 else成功题5,低分值题(5分)日常生活中,人们打电话时,常按分,秒计时,例如接通时为12:33,挂机时为14:05,则实际通话为92秒。不考虑跨小时的情况,也不考虑用户输入错误的情况。请根据输入的两时间,计算相应的通话时间。int
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1