求一个程序,要求是: 设计一个函数,以字符串为参数,返回该字符串中出现频率最高的字符。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求一个程序,要求是: 设计一个函数,以字符串为参数,返回该字符串中出现频率最高的字符。相关的知识,希望对你有一定的参考价值。
(若有多个字符,则组成新的字符串返回)
参考技术A char pc;int cnt;
int max = 1;
const char *sc, *c;
for(sc = string; *sc; ++sc)
cnt = 0;
for(c = string; *c; ++c)
if(*sc == *c)
++cnt;
if(cnt > max)
max = cnt;
pc = *sc;
return pc;
函数 数组 循环
一.第一题 7-1
1.本题pta提交
2设计思路
本题要求使用子函数求组合数,注意本题变量要求是双浮点型,在主函数中输入范围m,n,子函数为求sum的阶乘,并在子函数中用组合数公式即可
3代码截图
题目2 7-10
1本题pta提交
2设计思路
本题要求打出遇到的n个数字不同的年份,先定义num[4]={0},n[10]={0},并有一个years=year,用num来储存year的每个数,然后在i循环中使用n[num[i]]++,当n不等于0时,k++,循环结束退出判断k=dif,跳出大循环,如果不成立,则将n重新赋0,并将进入下一个year,k=0,最后输出应有的值。
3本题代码
4遇到的问题
之前代码的思路跟这个完全不一样,我是通过对年份的每一位数进行判断来执行count++,结果后来发现细节太多,然后一直修改,修改到最后还是无法全对,所以改了思路。
3 7-5
1本题pta提交
2设计思路
本题要求近似求pi,并给出了公式,本题难点主要在子函数的运用,分子为阶乘,分母为3*5*7,循环几次即可。
3本题代码
二截图本周的pta排名
三同学代码互评
1互评同学
谢晔晖
2我的代码、互评同学代码截图
3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题
不同之处:我用的是double来定义子函数,而同学用的是void,没有返回值,我觉得有返回值看起来比较清晰,还有就是对pi的定义同学采用了静态变量,省时,而我每一次都要重新输入比较麻烦,我比较喜欢同学对细节的处理,喜欢自己的思路。
四、本周学习总结
1.对子函数的使用,子函数可以使代码看起来更简便。
2.我们还学习了对指针数组的运用,但我在这里并没有太大体现,主要是对指针数组的不熟悉运用造成的,指针的地址还不太熟悉。
一 pta实验作业
1.7-21
2.设计思路
本题要求将方针循环右移,主要就是最后一个数与第一个数的对接。我先用一个数将最后一个数存起来,然后当其他循环结束时将最后一个放到第一个重复循环n次。
3代码截图
4本题遇到的问题
当时粗心在输出的时候将j++写成了i++。
第二题7-5
1本题pta提交
2设计思路
本题要将字符串的长度排序,基本思路并不难,只是在输入和排序的时候需要用到新的东西,比如说strcmp比较输入字符是否为#,还有就是strlen比较字符的长度,strcpy将字符串对调,还有首函数的定义,记得要加上string。
3代码截图
4本题调试过程遇到的问题
这边第一个输入循环时,忘记将i++,变成了sum++,导致答案都错误
第三题7-14
1本题pta提交
2设计思路
本题要在一串数字中插入一个数,所以我定义了两个数组,让第二个数组比第一个大一位,先把他们全相等,然后找到插入位置,将其插入即可
3代码截图
4本题调试过程中遇到的问题
不知道为什么总是无法满分,每次提交的分数均有不同。
二,截图本周目集的PTA最后排名。
三、同学代码互评
1互评同学
谢晔晖
2我的代码、互评同学代码截图
3我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。
不同之处:对此问题时,我使用了两个数组解决问题(因为担心本来数组的空间不足),而谢同学用一个数组解决问题,我的思路比较清楚,而他的思路比较简单。
我比较喜欢谢同学的思路,因为思路比较简单,而我的思路因为担心空间不足显得较为复杂。
四、本周学习总结
1.1一维数组与二维数组的运用
int a[10],b[10][20];/*b[10][20]矩阵的运用*/
char c[10],ch[10][20];/*ch[10][20]为一个字符串数组每个字符串有20个长度。*/
2.1string 字符串的运算
strcpy(a,b)将b复制到a上,保存到a
strcmp(a,b)比较a,b,相等则输出0
strcat(a,b)将b接到a的后面并保存到a
strlen(a)计算a的字符长度
不足之处:
string的字符串运用的不够熟练。字符串写起来容易错。
---恢复内容结束---
一.PTA实验作业
1.7-6 本题pta提交列表
2.设计思路
定义M,N,i,sum=0,count=0.输入m,n。套用双层循环并使i=2为初值(1的话后面循环直接跳出),并在i循环用M%i判断,当等于0的时候跳出i循环。跳出或者循环结束后判断i是否等于M,等于则count++,sum=sum+M。然后等到M循环结束,输出count就为素数的个数,以及sum为它们的和。
3代码截图
4做题途中遇到的问题
错误一
当时使用flag判断,少掉了m=n且不为素数的情况,如果出现该种情况代码初值必定为m,导致出错思路不大对。
2.7-12
pta上提交列表
2设计思路:本题需约分最简分式,首先定义分子分母和斜杠,然后开始判断如果num1<=num2,将num1作为循环终点,除到num1即可。然后在i循环中当num1%i&&num2%i==0时,为一个公约数。然后继续循环,直到i==num1。反之num2>num1也是。
3代码截图
4错误点1
没有思考分子大于分母的情况
3 7-21
该题pta
3设计思路
定义i,hh,mm。输入hh,mm,然后开始判断当hh>12且mm==0然后开始i循环hh>12多少输出多少dang,判断如果hh>=12&&mm>0然后开始i循环这边有一个边界问题要hh-11输出dang最后两种特殊情况hh<12时按格式输出hh,mm,然后当mm==0的时候,按格式输出。
4代码截图
4本题遇到的问题
少了对12点边界的计算,边界问题。
二.截图本周日集的pta排名
三、同学代码互评
1互评同学名称
许日祯
2.我的代码、互评同学代码
3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出里出问题。
相同之处:总体思路并没有太大差别
不同之处:这边初定义的时候小日同学用了一个初值判断,引入了n,避开了m==1的情况,而我则是直接使用m就直接避开
比较起来的话我觉得自己的思路比较清晰,小日同学的n加的比较局促,我更喜欢自己的代码。
四、本周学习总结
1.1使用while,for语句进行循环。
1.2循环嵌套有进一步学习到
1.3switch语句的学习
不足之处
循环嵌套起来可能会有些混乱,switch语句不太会用
以上是关于求一个程序,要求是: 设计一个函数,以字符串为参数,返回该字符串中出现频率最高的字符。的主要内容,如果未能解决你的问题,请参考以下文章