问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言怎么计算输入字符种类?7

发布网友 发布时间:2023-10-24 13:07

我来回答

5个回答

热心网友 时间:2024-11-30 19:58

写程序首先要明确输入和输出。假设你要求在控制台输入,以回车为结尾;输出一个正整数,表示输入字符串中字符种类数。

设计算法:

读入和输出部分很简单,关键在于处理问题的部分——如何统计。

算法一:建立一个标本数组,然后遍历整个字符串,如果发现不存在标本的字符,将其放入标本,计数器加1。这个算法的时间复杂度n^2,空间复杂度为1。

算法二:算法一中相当一部分时间浪费在检查字符是否有样本这件事情上,对这一步进行改进:样本数组的索引方式改为按ASCII索引。即当前字符为‘a’,只需检查样本数组下标为97的元素是否存在即可。时间复杂度降为n,空间复杂度仍为1,但是占用的空间有所增加。

算法三:将样本数组改成一颗二叉搜索树,每次检查时就可以用二分查找。时间复杂度为nlogn,空间复杂度为1,但是占用的实际空间和一一样多。

算法四:二叉搜索树还可以改成B-树,请自行探索。问题到此为止已经变为一个搜索、添加问题。

从编程实现上考虑,算法一的时空复杂度是最烂的,它的空间复杂度并不会优于算法二, 你在统计之前并不知道种类有多少,所以你只能按最多的情况去申请。算法三虽然的确节省了一些空间,但是这点空间真的不算什么,而且它的时间复杂度可能会退化到一的时间复杂度,写起来也相对麻烦,所以舍弃这种方法。故我推荐选择算法二。

拓展问题:怎样用c语言实现统计一个篇文章中的单词及它们出现的页数。

热心网友 时间:2024-11-30 19:58

#include <stdio.h>
main()
{char ch;
 int a=0,b=0;
 while ((ch=(getchar()))!='\n')//注意这里加的括号
 {
     if (ch>='0'&&ch<='9')
     a++;
    else
      b++;
 }
printf("%d\t%d\n",a,b);//加个空格更好区分
return 0;
}
 
//希望采纳!  亲!因为学校断网,所以现在用的是CMCC  用的太久了  我要下线了 所以最好你全懂了,不要追问了;

热心网友 时间:2024-11-30 19:59

可以用强制转型:将字符转换成Ascii的值:

0对应的Ascii的是:48

9对应的是:57

if((int)ch>=48&&(int)ch<=57)
  a++;
else
  b++;

热心网友 时间:2024-11-30 20:00

  方法很简单,是根据ASCII码表来的,在这个表中0~9的码值是连续的,a~z和A~Z也是连续的,所以判断字符类型就可以根据ASCII的值.
  字符: 0 ~ 9 对应ASCII:48 ~57
  字符: a ~ z对应ASCII:97~122
  字符: A ~ Z对应ASCII:65~90

  判断方法:
  数字:
  if (src[i]>0 && src[i]<9)
  大写字母:
  if (src[i]>65&& src[i]<90)
  小写字母:
  if (src[i]>97 && src[i]<122)

热心网友 时间:2024-11-30 20:00

你所有输入的东西,都是字符。
你可以通过字符的编码来确定
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
CAD具体是学什么的 cad学什么专业好 CAD属于什么课型 文胸36/80是什么尺码 21.22.23.24.25.这5个数横竖家起来都要等于69 21.22.23.24.25.5个数字横竖等于69怎么做 已知递增的等差数列{an}满足a1=1,a3=a2²-4,则an=? 已知递增等差数列an的前n项和为Sn,a1=1,且a2+1,a4+1,S4成等比数列 求数... 金鱼吊兰有什么作用,可供观赏改善风水 金鱼吊兰是什么植物? 一帆风顺花变黑了,怎么回事?42 怎样锻炼一个人的气质1 黑白无常的感情分析230 真正的爱情是黑白无常,为什么?158 电路的接头一把放在哪里?有没什么规定就是一个开关盒或者接线盒... 家中预留电路接线盒中4根线,接灯怎么接法? 电路底盒的作用1 怎么在朋友圈发60秒以上的视频? 上世纪上海八九十年代的名优产品都有哪些? 丧飞大写字母怎么写2 飞机的型号都是用什么大写字母表示?2 “飞”字大写的笔顺是什么?3 黑坑里钓鲤鱼怎么配食2 黑坑到鲤鱼饵料配方5 钓黑坑鲤鱼的饵料配料是怎么配的1 外国电影 监狱里 一个中国老者 传授难主角功夫。男主角出狱后...23 英语发音“e”“i”怎么区别?16 用友T3已经结转了上年度,为什么没有期初余额啊?44 请教C语言的一个低买高卖算法,注意时间复杂度必须为O(nlo...2 羡慕不良人黑白无常的爱情语录16 期末科目有余额,但是结转了之后下一期期初余额为0,怎么补录期...5 工会上年结转余额在第二年期初数据中输什么科目1 拎包入住什么意思1 国外片 有一部电影是主角要进监狱了。他不会功夫。最后找到一个...6 土壤究竟分为几层。在勘探当中应注意什么4 电脑自动关机跟电脑电源线有关系么4 发音是ir〔e:〕的英文159 光盘刻录大师6.3中烧录数据DVD和烧录可启动数据DVD有什...16 烧录可启动数据DVD和烧录数据DVD有什么区别?9 英语音标中e是否有两种发音157 如何用两个开关同时控制两盏灯的?详细点在带上电路图。我买了两... 英语中的 元音e怎么发音47 刻录车里dvd视频mv歌曲,是选烧录数据dvd还是选烧录可启... ...我想知道那里可以借到15万让我三年还清啊?我真的快崩溃了……_百度... 土壤分层61 anti-hiv6周阴无套高危这个检测准确率高吗?还有症状。头晕困。腋窝手臂... 相机、电脑、相片打印机连接在一起,拍了相片,可以立刻直接打印出来... 黑坑钓鲤鱼老鬼饵料配方96 黑坑钓鲤鱼饵科配方58 大写的飞怎么写?128