17-03 找最长单词和各单词的长度

14 篇文章 1 订阅
订阅专栏

17-03 找最长单词和各单词的长度

题目问题描述:

  •  输出每个单词及其长度;
  • 输出最长的单词

思路分析:

问题:

  1. 如何得到单词 和 单词长度;
  2. 如何找到 最长的单词;
  3. 如果有多个最长单词应该如何输出;
  4. 输出格式,最后一个不要逗号

解决:本题做的较为 繁琐

过程:得到单词/长度-->找到最长的单词长度-->寻找相同最长单词的下标--->根据下标输出单词

  1. 利用gets得到一串字符;二维数组存储单词,一维数组存储长度,依次取,下标则相同
  2. 循环比较最大值,社初值为首位依次找;
  3. 在遍历依次长度数组,找是否有相同最大值;
  4. 按照所得最大值下标找到对应的单词,输出时设置计数器,小于最大值个数时才输出 逗号

结果截图:

 

实现代码:

#include<stdio.h>
#include<string.h>

int main(){
	char a[100] ={0};	//一行字符串
	char b[20][100] ={0};//存储每个		单词的数组
	int len[20];		//存储每单词	长度的数组
	int i = 0 ;			//遍历一行字符串的变量
	int k = 0;			//每个单词的长度
	int m = 0;			//一行中有多少单词
	int maxlen =0;		// 最大的长度
	int max_index[20];	//最长单词的下标序列
	int max_s = 0;	//最长的单词的个数
	int geshi_num =0; //输出逗号格式
	gets(a);		//the benefits it can offer  
					//this is a book
	
	while(a[i] != 0){		//将一行字的字符中的单词存入单词数组;长度存入长度数组
		if(a[i] != ' '){
		b[m][k] = a[i];
			k++;
		}
		else{
			len[m] = k;
			m++;
			k = 0;
		}
		i++;
	
	}
 
	len[m] = k;			// 最后一位的单词长度;

	maxlen = len[0];	//找到最长的单词
	for(int j = 0;j <= m;j++){
		printf("%-10s\t%d\n",b[j],len[j]);
		if(len[j] > maxlen){
			maxlen = len[j];
		}
	}

	for(j = 0;j <= m;j++){	// 寻找是否有相同最大值的单词,记录下标
		if(len[j] == maxlen){
			max_index[max_s++] = j;
		}
	}
	printf("\nthe longest word is: ",max_s);
	for(j = 0;j < max_s;j++){	//根据下标 找到最大值;
		printf("%s",b[max_index[j]]);
		if(geshi_num < max_s-1){	//输出格式:最后一个元素后面不加逗号
			printf(", ");
			geshi_num++;
		}
	}
	printf("\n");

}

 

 实现代码答:

#include<stdio.h>
#include<string.h>
int po[20], poj = 0;
int le[20], lek = 0;
int cache[10] = {}, cac_len = 0;
int alphabetic(char c){
	if((c >= 'a' && c <= 'z') || (c >= 'A' && c<='Z'))
		return 1;
	else
		return 0;
	}
int longest(char string[]){
	int len = 0, i, length = 0, flag = 1, place , point;
	for(i = 0; i <= strlen(string); i++){
		if(alphabetic(string[i])){
			if(flag){
				point = i;
				po[poj++] = point;
				flag = 0;
			}
			len++;
		}else{
			flag = 1;
			le[lek++] = len;
			if(len >= length){
				if(len > length){	
					for(int c = 0; c < 10; c++){
						cache[c] = 0;
					}
					cac_len = 0;
				}
				length = len;
				place = point;
				cache[cac_len++] = place;
			}
			len = 0;
		}
	}
	return place;
}

void main(void){
	int i;
	char line[100];
	printf("输入一行文本\n");
    gets(line);
	longest(line);
	for(i = 0; i < poj; i++){
		for(; alphabetic(line[po[i]]); po[i] = po[i] + 1){
			printf("%c", line[po[i]]);
		}
		printf("%6d\n", le[i]);
	}
	printf("\nthe longest word is: ");
	for(i = 0; i < cac_len; i++){
		for(; alphabetic(line[cache[i]]); cache[i] = cache[i] + 1){
			printf("%c", line[cache[i]]);
		}
		printf(" ");
	}
	printf("\n");
}	

编程在一个已知的字符串(约定:字符数≤127字节)中查找最长单词输出最长单词长度
举子人间
04-26 722
编程在一个已知的字符串(约定:字符数≤127字节)中查找最长单词输出最长单词长度。   注意事项:   (1)只考虑输入的字符串中仅含空格和其它可见字符,仅用空格用来分隔不同单词。   (2)字符串中可能只有1个单词。   (3)字符串中可能1个单词都没有,此时最长单词长度为0。 代码: /* 程序的功能: 在一个已知的字符串(约定:字符数≤127字节)中查找最长单词输出最长单词长度。   注意事项:   (1)只考虑输入的字符串中仅含空格和其它可见字符,仅用空格来分隔不同单词。   (2)字
js最长单词_JavaScript算法练习:出字符串中最长单词输出长度
weixin_39977642的博客
12-19 458
出字符串(可能是一句话)中最长单词并且将其长度输出。这个算法其实就是让我们看看字符串中有多少个词,每个词有多少个字母,然后对这些词进行比较,出字母数最多的那个词,并且返回这个最长字符数单词长度。实现上面描述的功能,同样先创建一个函数,比如findLongestWord(),并且给这个函数传入一个arr参数,这个arr是一个包含多个词的字符串。然后在函数通过以下几步来实现所需的功...
(PTA)7-14 查找最长单词输出它和它的长度
m0_74143607的博客
11-15 1384
编程在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词输出到的最长单词及其长度 输入格式: 输入一行字符,假定只包含字母及空格。 如:this is a test program 输出格式: 输出最长单词及其长度输出完成换行 格式如下: max=program,lenght=7
(PTA)7-14 查找最长单词输出它和它的长度 编程在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词输出到的最长单词及其长度
ncyyvoid的博客
11-15 2313
编程在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词输出到的最长单词及其长度
输出一行字符串中最长单词C语言,出字符串中最长单词,并输出(可能有多个)。C语言...
weixin_35143166的博客
05-17 3508
/*计划分两步走,单词的最大长度maxLen,再把长度为maxLen的单词打印出来*/int longestWorlds(char* str)//最长单词(可能不止一个),打印{/*第一步*/char* p = str;int len=0, maxLen=0; //单词长度初始化为0,默认最大单词长度也为0while (*p != '\0'){len = 0; ...
最长单词长度单词,如果最长单词有多个,则只需输出第一个即可,请补充代码,使其能实现规定的功能。
zyt520919的博客
12-29 741
#include <stdio.h> #include <string.h> int main() { char a[10000]; int i,j,flag,w,p,len,max=0; printf("请输入一个字符串\n"); gets(a); flag=0;//0表示单词处于结束状态,1表示单词处于开始态 for(i=0; a[i] ;i++) { w=a[i]>.
js代码-js寻最长单词算法
07-15
在JavaScript编程中,寻字符串中最长单词是...以上就是使用JavaScript寻最长单词的基本思路和可能的代码实现,以及`README.txt`文件的大概内容。这个简单任务展示了JavaScript在处理字符串数据时的灵活性和效率。
python最长单词,Python 出英文单词列表(list)中最长单词
weixin_39747383的博客
03-26 3318
这篇文章主要介绍了Python 出英文单词列表(list)中最长单词链,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧本文主要介绍Python中单词字符串的列表(list),出列表中所有单词中前一个单词首字母和后一个单词尾字母相同,组成最长单词链方法代码,并且每个单词不能多次使用。例如:words = ['giraffe'...
python输入英文句子、最长单词_在输入fi中出句子中的最大和最小单词
weixin_32239523的博客
02-04 2908
我有一个问题,要求我出文本文件中单词的最小和最大数量。我已经完成了五个问题中的三个,剩下的两个是关于最小值和最大值的问题,我对此没有任何解决办法。以下是我的代码:感谢您的帮助lines, blanklines, sentences, words = 0, 0, 0, 0,print '-' * 50full_text = 'input.txt'empty_text = 'output.txt'...
python出列表中最长单词_Python 出英文单词列表(list)中最长单词
weixin_42300721的博客
12-30 4319
本文主要介绍Python中单词字符串的列表(list),出列表中所有单词中前一个单词首字母和后一个单词尾字母相同,组成最长单词链方法代码,并且每个单词不能多次使用。例如:words = ["giraffe", "elephant", "ant", "tiger", "racoon", "cat", "hedgehog", "mouse"]最长单词链列表:["hedgehog", "giraf...
对一个已知的字符串查找最长单词,并且输出
贪吃天使的专栏
07-21 1369
//   第一种方法     //如何求出字符串中的单词长度 //    char str[] = "lanou is a big company"; //    int maxlength = 0; //存储最长单词长度 //    int length = 0;//用来记录单词长度 //    int maxIndex = 0; //    //  使用
POJ 2880 句中最长单词
weixin_30932215的博客
05-11 151
时间限制:1000ms内存限制:65536kB描述输入一个英文句子,长度不超过40个字符。编写程序,输出句子中最长的一个单词。输入长度不超过40的字符串输出句中最长单词样例输入 This is a test sentence 样例输出 sentence 提示1.输入只有一个句子,不需使用while 2.若句尾有标点,则标点和最后一个单词可看成是一个单词,可以不用作额外判...
C语言:在字符串中查找最长单词输出(指针和数组赋值两种思想)
胖虎虎
12-18 4975
前情提要:这个实验题是学习二维数组时的一个附加题,从构思到整体结构的搭建再到最后改BUG肝了好几个晚上(太菜了太菜了),但最后还是存在一些小BUG以及程序效率过低的情况,最后摆烂了留下了烂尾楼,直至今天虽然临近期末但又重新拾起来改了改。由于当时未使用指针,导致整个程序显得十分复杂,且运行效率较低,今天收拾烂摊子的时候又用指针写了一遍,相比之下运行效率有较大提升。相比CSDN其他博主写的二十行左右的代码就干完了的情况,我还是太菜啦。 #include <stdio.h> #...
(新手向)中国大学mooc高级语言程序设计相关OJ解答(五)
YuTsingLeen
11-17 8333
中国大学mooc高级语言程序设计地址:https://www.icourse163.org/course/JLU-62001 第八讲:指针应用 & 结构体–编程题 3最长单词(10分) 题目内容:输入5个单词输出最长单词及其长度。如果有多个单词都是最长单词,则输出第一个。 输入:5个单词 输出最长单词长度及该单词(中间用一个西文空格间隔) 样例:输入:This table be...
求一个字符串中最长单词,并将这个单词输出
小程的博客
11-07 2645
.写一个函数,输入一行字符,将此字符串中最长单词输出。 在一个字符串中,单词单词之间会被其它字符隔开如:‘,’,‘;’,‘!’,如果这个单词在字符串末尾则不会有其它字符隔开。假设不考虑单词的拼写是否正确,只要中间没有其它非字母字符,则认为这是一个单词c语言代码如下: #include<stdio.h> #include<string.h> #include<ctype.h> char cupWord[100]; char maxWord[...
C语言 出一个字符串中的最长单词,并打印出来。
qq_52027108的博客
12-06 697
C语言 出一个字符串中的最长单词,并打印出来。 2.结果演示 如下(示例):
C语言小练习——输入一句英文,输出该句中最长英文单词长度
热门推荐
Coder Rookie
07-27 1万+
写在前面:规定一句话中以空格作为分词符。输入一句话,求一句话中最长单词长度。 例如: I love China! #include &lt;stdio.h&gt; #include &lt;string.h&gt; #define MAX 100 int main(int argc, const char *argv[]) {     char str[MAX];     scanf("%[...
C语言数组题】编写程序查找一个英文句子中所有的最长单词
weixin_64399725的博客
07-17 1980
查找一个英文句子中的所有的最长单词
输出句子中最长单词C语言
Yigeputongren的博客
07-25 213
【代码】输出句子中最长单词C语言
出一段英语句子中最长单词以及长度
最新发布
10-15
出一段英文句子中最长单词及其长度,可以分为以下几个步骤: 1. **分割单词**:首先,你需要将句子拆分成单词列表,这通常通过空格或标点符号来进行。在Python中,可以使用内置的`split()`函数。 ```python sentence = "This is a sample sentence to find the longest word." word_list = sentence.split() ``` 2. **初始化变量**:创建两个变量,一个存储最长单词,另一个存储其长度。假设初始值都设为第一个单词和0。 ```python longest_word = word_list[0] longest_length = 0 ``` 3. **遍历单词**:接下来遍历这个单词列表,对于每个单词,检查它的长度是否大于当前最长单词长度。 ```python for word in word_list: if len(word) > longest_length: longest_word = word longest_length = len(word) ``` 4. **输出结果**:最后输出最长单词及其长度。 ```python print("The longest word is:", longest_word, "with a length of", longest_length) ``` 注意,这个过程假定输入的是标准的英文句子,没有特殊字符或连字符构成的单词。如果有这种情况,可能需要额外处理。
写文章

热门文章

  • 13-01 606
  • 厘米换算英尺英寸 525
  • 求折线下面积(0-1之间不算) 487
  • 7-16 求符合给定条件的整数集 418
  • 16-02 偶数平均值 335

分类专栏

  • 基础练习 19篇
  • PTA基础编程 31篇
  • 数据结构 1篇
  • 真题代码 14篇

最新评论

  • 7-14 求整数段和

    炯ya: [code=cpp] #include <iostream> #include <cmath> using namespace std; int main(){ int s,e; int sum=0; int flag = 0; scanf("%d %d",&s,&e); for(int i=s;i<=e;i++){ printf("%5d",i); flag += 1; if(flag==5 && (e-s)>5){ printf("\n"); flag = 0; } sum += i; } printf("\nSum = %d",sum); return 0; } [/code]

  • 2.统计个位数字

    CSDN-Ada助手: 算法 技能树或许可以帮到你:https://edu.csdn.net/skill/algorithm?utm_source=AI_act_algorithm

最新文章

  • 查找倒数第k位数
  • 循环双链表(头插、尾插、删除)
  • 判断是否是子串
2023年64篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家徐州玻璃钢雕塑电话玻璃钢雕塑太阳下使用寿命广州商场玻璃钢花盆贵州兴义玻璃钢雕塑厂家玻璃钢香蕉雕塑哪家好汕尾玻璃钢动物雕塑供应商家南阳镇平玻璃钢佛像雕塑南城玻璃钢造型雕塑湖北锻铜校园玻璃钢雕塑圣诞商场美陈活动内容菏泽佛像校园玻璃钢景观雕塑湘潭玻璃钢雕塑凳子丽江玻璃钢雕塑生产商湘西衡阳玻璃钢雕塑定制三门峡校园玻璃钢卡通雕塑沈阳玻璃钢香蕉雕塑景洪玻璃钢关公雕塑商丘抽象玻璃钢彩绘雕塑景区玻璃钢雕塑设计福州景区玻璃钢雕塑公司玻璃钢人物雕塑的制作技术嘉兴玻璃钢人物雕塑批发宁波抽象玻璃钢雕塑市场东莞发光小品玻璃钢雕塑生产商银川景观玻璃钢雕塑河南水果玻璃钢雕塑方法福州卡通玻璃钢雕塑造型贴金楚雄商场美陈雕塑厂家仙林春季商场美陈玻璃钢贴金彩绘佛像雕塑厂香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化