• 关于 串输入输出干什么用的 的搜索结果

问题

【精品问答】Python字符串面试知识点50问

珍宝珠 2019-12-01 22:06:38 25 浏览量 回答数 0

问题

【精品问答】python技术1000问(1)

问问小秘 2019-12-01 21:57:48 448858 浏览量 回答数 12

问题

【Java学习全家桶】1460道Java热门问题,阿里百位技术专家答疑解惑

管理贝贝 2019-12-01 20:07:15 27612 浏览量 回答数 19

新用户福利专场,云服务器ECS低至96.9元/年

新用户福利专场,云服务器ECS低至96.9元/年

问题

【python学习全家桶】263道python热门问题,阿里百位技术专家答疑解惑

管理贝贝 2019-12-01 20:07:21 7217 浏览量 回答数 2

回答

链表啊,结构体里放一个char来记录字母,一个int来计数,遍历字符串后排序输出。 ######谢谢额 我猜自己发现了错误,又改写了一下,现在已经成功了。######我尝试去这样做了,但是结果还是出错。有思路,但是还是比较复杂,代码写出来了出错。也不知道是哪里有问题.######有人能帮帮忙吗?######定义个数组c=int[26][2],c[0][0]='a',c[0][1]=次数,然后排序,然后输出,如果次数为0,则不输出,选个排序算法就行了######回复 @水晶之夜 : 输出的时候类型强制转换下,(char)c[0][0]。估计用指针数组也行,或者也可以用typedef定义一个struct,但这些具体怎么写语句我也不会,没怎么好好用过C,反正大体上应该是这么个意思。######这里有一个问题,你定义的数组是整形的还是字符型?你不可能一个放字符,一个放次数,它们是不同的数据类型。######Hash Table完美解决 ######什么是Hash Table?###### 引用来自“猎户座”的答案 链表啊,结构体里放一个char来记录字母,一个int来计数,遍历字符串后排序输出。 我自己又重新调试了一下,把代码稍稍改了一下。现在基本上可以了。 #define N 1024 void f12() { //输入一串字符以?结束 char str[N]; gets(str); //全部字母小写化 int i; for(i=0;str[i]!='\0';i++) { str[i]=tolower(str[i]); } //定义一个结构体来记录字符和次数 Info a[26]; for(i=0;i<26;i++) { a[i].letter=i+97; a[i].count=0; } //统计字符 for(i=0;str[i]!='\0';i++) { if(str[i]>='a'&&str[i]<='z') { a[str[i]-'a'].count++; } } //排序 int j; for(i=0;i<26;i++) { int k=i; for(j=0;j<25;j++) { if(a[j].count<a[j+1].count) { //交换 int t=a[j].count; a[j].count=a[j+1].count; a[j+1].count=t; char c = a[j].letter; a[j].letter=a[j+1].letter; a[j+1].letter=c; } } } //输出 for(i=0;i<26;i++) { if(a[i].count==0) continue; printf("%c %d\n",a[i].letter,a[i].count); } } ###### 引用来自“NealFeng”的答案 定义个数组c=int[26][2],c[0][0]='a',c[0][1]=次数,然后排序,然后输出,如果次数为0,则不输出,选个排序算法就行了 哈,你这个貌似多做事情了。题目是针对字母,没针对其他分类方法。那么就可以直接 int alpha[26]; void init_alpha(void){ int i; for (i = 0 ; i < 26 ; i ++ ) alpha[i] = 0; } #define _CHK_SET(a,min,max) do {if((a >= (min))&&(a <= (max))){alpha[a-min] += 1;}while (0) void set_alpha(char a){ _CHK_SET(a ,'A','Z'); _CHK_SET(a,'a','z'); } int max_num(void){ int re = alpha[0]; int i; for (i = 1 ; i< 26 ; i++) { if (alpha[i] > re) re = alpha[i]; } return re; } int print_max(void){ int i; int flag = 0; i = max_num(); if (alpha[i] == 0){ return 0; } printf(....); alpha[i] = 0; return 1; } 余下,就是初始化。然后读一个字符如果不是结束符,就掉用一次set_alpha,全部处理完就不停的调用print_max 直到返回为0. 哈, 原型设计不要考虑优化问题。逻辑清楚是关键。有什么好排序的。你排序的价值在于降低不必要的逻辑处理,但和目标逻辑没有关系。 ######有一点挺有意思的,确实,要求是打印出来,干嘛排序呢?###### 引用来自“中山野鬼”的答案 引用来自“NealFeng”的答案 定义个数组c=int[26][2],c[0][0]='a',c[0][1]=次数,然后排序,然后输出,如果次数为0,则不输出,选个排序算法就行了 哈,你这个貌似多做事情了。题目是针对字母,没针对其他分类方法。那么就可以直接 int alpha[26]; void init_alpha(void){ int i; for (i = 0 ; i < 26 ; i ++ ) alpha[i] = 0; } #define _CHK_SET(a,min,max) do {if((a >= (min))&&(a <= (max))){alpha[a-min] += 1;}while (0) void set_alpha(char a){ _CHK_SET(a ,'A','Z'); _CHK_SET(a,'a','z'); } int max_num(void){ int re = alpha[0]; int i; for (i = 1 ; i< 26 ; i++) { if (alpha[i] > re) re = alpha[i]; } return re; } int print_max(void){ int i; int flag = 0; i = max_num(); if (alpha[i] == 0){ return 0; } printf(....); alpha[i] = 0; return 1; } 余下,就是初始化。然后读一个字符如果不是结束符,就掉用一次set_alpha,全部处理完就不停的调用print_max 直到返回为0. 哈, 原型设计不要考虑优化问题。逻辑清楚是关键。有什么好排序的。你排序的价值在于降低不必要的逻辑处理,但和目标逻辑没有关系。 我测试了你一下你这个代码,还有5个错误。不太理解。。 --------------------Configuration: temp - Win32 Debug-------------------- Compiling... temp.cpp d:\my files\c program\wow\temp\temp.cpp(25) : error C2062: type 'int' unexpected d:\my files\c program\wow\temp\temp.cpp(26) : error C2143: syntax error : missing ';' before '{' d:\my files\c program\wow\temp\temp.cpp(33) : error C2562: 'set_alpha' : 'void' function returning a value d:\my files\c program\wow\temp\temp.cpp(21) : see declaration of 'set_alpha' d:\my files\c program\wow\temp\temp.cpp(35) : error C2601: 'print_max' : local function definitions are illegal d:\my files\c program\wow\temp\temp.cpp(46) : fatal error C1004: unexpected end of file found Error executing cl.exe. temp.obj - 5 error(s), 0 warning(s) ###### 引用来自“中山野鬼”的答案 引用来自“NealFeng”的答案 定义个数组c=int[26][2],c[0][0]='a',c[0][1]=次数,然后排序,然后输出,如果次数为0,则不输出,选个排序算法就行了 哈,你这个貌似多做事情了。题目是针对字母,没针对其他分类方法。那么就可以直接 int alpha[26]; void init_alpha(void){ int i; for (i = 0 ; i < 26 ; i ++ ) alpha[i] = 0; } #define _CHK_SET(a,min,max) do {if((a >= (min))&&(a <= (max))){alpha[a-min] += 1;}while (0) void set_alpha(char a){ _CHK_SET(a ,'A','Z'); _CHK_SET(a,'a','z'); } int max_num(void){ int re = alpha[0]; int i; for (i = 1 ; i< 26 ; i++) { if (alpha[i] > re) re = alpha[i]; } return re; } int print_max(void){ int i; int flag = 0; i = max_num(); if (alpha[i] == 0){ return 0; } printf(....); alpha[i] = 0; return 1; } 余下,就是初始化。然后读一个字符如果不是结束符,就掉用一次set_alpha,全部处理完就不停的调用print_max 直到返回为0. 哈, 原型设计不要考虑优化问题。逻辑清楚是关键。有什么好排序的。你排序的价值在于降低不必要的逻辑处理,但和目标逻辑没有关系。 简洁、明了 ###### 引用来自“水晶之夜”的答案 引用来自“中山野鬼”的答案 引用来自“NealFeng”的答案 定义个数组c=int[26][2],c[0][0]='a',c[0][1]=次数,然后排序,然后输出,如果次数为0,则不输出,选个排序算法就行了 哈,你这个貌似多做事情了。题目是针对字母,没针对其他分类方法。那么就可以直接 int alpha[26]; void init_alpha(void){ int i; for (i = 0 ; i < 26 ; i ++ ) alpha[i] = 0; } #define _CHK_SET(a,min,max) do {if((a >= (min))&&(a <= (max))){alpha[a-min] += 1;}while (0) void set_alpha(char a){ _CHK_SET(a ,'A','Z'); _CHK_SET(a,'a','z'); } int max_num(void){ int re = alpha[0]; int i; for (i = 1 ; i< 26 ; i++) { if (alpha[i] > re) re = alpha[i]; } return re; } int print_max(void){ int i; int flag = 0; i = max_num(); if (alpha[i] == 0){ return 0; } printf(....); alpha[i] = 0; return 1; } 余下,就是初始化。然后读一个字符如果不是结束符,就掉用一次set_alpha,全部处理完就不停的调用print_max 直到返回为0. 哈, 原型设计不要考虑优化问题。逻辑清楚是关键。有什么好排序的。你排序的价值在于降低不必要的逻辑处理,但和目标逻辑没有关系。 我测试了你一下你这个代码,还有5个错误。不太理解。。 --------------------Configuration: temp - Win32 Debug-------------------- Compiling... temp.cpp d:\my files\c program\wow\temp\temp.cpp(25) : error C2062: type 'int' unexpected d:\my files\c program\wow\temp\temp.cpp(26) : error C2143: syntax error : missing ';' before '{' d:\my files\c program\wow\temp\temp.cpp(33) : error C2562: 'set_alpha' : 'void' function returning a value d:\my files\c program\wow\temp\temp.cpp(21) : see declaration of 'set_alpha' d:\my files\c program\wow\temp\temp.cpp(35) : error C2601: 'print_max' : local function definitions are illegal d:\my files\c program\wow\temp\temp.cpp(46) : fatal error C1004: unexpected end of file found Error executing cl.exe. temp.obj - 5 error(s), 0 warning(s) 他这个是 C语言写的,得用 C语言编译器。 把 .cpp 改成 .c 再试试。 还有 27 行 printf 里面加上你要输出的东西。 ###### 引用来自“水晶之夜”的答案 引用来自“中山野鬼”的答案 引用来自“NealFeng”的答案 定义个数组c=int[26][2],c[0][0]='a',c[0][1]=次数,然后排序,然后输出,如果次数为0,则不输出,选个排序算法就行了 哈,你这个貌似多做事情了。题目是针对字母,没针对其他分类方法。那么就可以直接 int alpha[26]; void init_alpha(void){ int i; for (i = 0 ; i < 26 ; i ++ ) alpha[i] = 0; } #define _CHK_SET(a,min,max) do {if((a >= (min))&&(a <= (max))){alpha[a-min] += 1;}while (0) void set_alpha(char a){ _CHK_SET(a ,'A','Z'); _CHK_SET(a,'a','z'); } int max_num(void){ int re = alpha[0]; int i; for (i = 1 ; i< 26 ; i++) { if (alpha[i] > re) re = alpha[i]; } return re; } int print_max(void){ int i; int flag = 0; i = max_num(); if (alpha[i] == 0){ return 0; } printf(....); alpha[i] = 0; return 1; } 余下,就是初始化。然后读一个字符如果不是结束符,就掉用一次set_alpha,全部处理完就不停的调用print_max 直到返回为0. 哈, 原型设计不要考虑优化问题。逻辑清楚是关键。有什么好排序的。你排序的价值在于降低不必要的逻辑处理,但和目标逻辑没有关系。 我测试了你一下你这个代码,还有5个错误。不太理解。。 --------------------Configuration: temp - Win32 Debug-------------------- Compiling... temp.cpp d:\my files\c program\wow\temp\temp.cpp(25) : error C2062: type 'int' unexpected d:\my files\c program\wow\temp\temp.cpp(26) : error C2143: syntax error : missing ';' before '{' d:\my files\c program\wow\temp\temp.cpp(33) : error C2562: 'set_alpha' : 'void' function returning a value d:\my files\c program\wow\temp\temp.cpp(21) : see declaration of 'set_alpha' d:\my files\c program\wow\temp\temp.cpp(35) : error C2601: 'print_max' : local function definitions are illegal d:\my files\c program\wow\temp\temp.cpp(46) : fatal error C1004: unexpected end of file found Error executing cl.exe. temp.obj - 5 error(s), 0 warning(s) 这个也算代码?我的老天啊。。。无非是我想说明逻辑,用了语言来描述。。。。不能这么省事。又不是我的作业。哈。

爱吃鱼的程序员 2020-06-03 17:27:32 0 浏览量 回答数 0

问题

深入理解Magento - 第一章 - Magento强大的配置系统:报错 

kun坤 2020-06-04 21:14:35 5 浏览量 回答数 1

问题

深入理解Magento - 第一章 - Magento强大的配置系统 - 配置报错

montos 2020-06-04 15:18:56 4 浏览量 回答数 1

问题

MaxCompute百问集锦(持续更新20171011)

隐林 2019-12-01 20:19:23 38430 浏览量 回答数 18

问题

【精品问答】Python二级考试题库

珍宝珠 2019-12-01 22:03:38 1146 浏览量 回答数 2

问题

十大经典排序算法最强总结(内含代码实现)

游客pklijor6gytpx 2020-01-09 14:44:55 1240 浏览量 回答数 2
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 云栖号物联网 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站 云栖号弹性计算 阿里云云栖号 云栖号案例 云栖号直播