C语言编程求一个英文句子中的单词数和最长单词的位置、长度及输出这个单词。 c++编程 从键盘输入一个英文

www.zhiqu.org     时间: 2020-11-23

我刚做了一关于英文句子里面每个单词平均字长的。与你问题很近。

#include "stdio.h"

#include

#include "ctype.h"

#define MAX 1000000

char buf[MAX],s[MAX];

char p[MAX];

int main(){

int n = 0;

int m = 1;

int cout = 0;

float ave = 0;

int i;

fgets(buf,sizeof(s),stdin);

n = strlen(buf)-1;//字符串的末尾有一个结束字符

for( i =0;i < n; i++)

if(isalpha(buf[i]) == 0 && isalpha(buf[i+1])!=0)

{

m ++;

}

printf("%d

",m);

for(i = 0; i < n; i++)

{

if(isalpha(buf[i]) !=0)

cout++;

}

printf("%d

",cout);

ave = cout /m;

printf("%f",ave);

return 0;

}

下面这段程序有问题:

int max=wordNo[0];

for(int k=0;k

{

if(wordNo[k]>wordNo[0])

max=wordNo[k];

else

max=wordNo[0];

}

改成这样就行:

int max=wordNo[0];

int k=0;

for(i=0;i

{

if(wordNo[i]>max)

{

k=i;

max=wordNo[i];

}

}

#include #include #include #include #define SIZE 100void readin(char str[]);//读取输入,一行开头ctr+z,然后回车,结束输入int countWords(char *p);//数单词个数void longest(char str[]);//最长单词开始的字符位置,int main(void){ char str[SIZE]; int counter; readin(str);//读取输入 counter=countWords(str);//数出单词个数 printf("在这段英文里一共有%d个单词.

",counter); longest(str);//最长单词是第几个字母处开始,及字母单词长度 printf("Done.

"); return 0;}void readin(char str[]){ char ch; int index=0; printf("请输入一段英文:

"); while((ch=getchar())!=EOF&&indexmaxlenth) { maxid=header; maxlenth=lenth; } } } } if(maxlenth==0) { printf("所以,最长单词的长度就是0.

"); } else { for(index=0;index<=maxid;index++)//计算最长单词开始与 第几个字母数字 { if(isalnum(str[index])) { counter++; } } printf("最长的单词从第%d个数字字母开始,此单词长度为%d.

",counter,maxlenth); }}这是我写的,还望指教

for (i=0;i<100;i++)

{

if (s[i]=='0'||s[i]==' '||s[i]==',')

{

flag++;

n++;

a[n]=i;//此行记录每个单词末尾的最后一个字母位于第几个字符

b[n]=a[n]-a[n-1]-1;//此行有错,原意是为了新建b[n]存储每一个单词的最后一个字节在第几个字 节,但是似乎当n=1时,a[0]不存在,此时有逻辑错误

printf("%d

",a[n]);

printf("%d

",b[n]);

}

}

干嘛非得这么干,a[n]第一个位置,b[n]存最后一个位置就好了呀。

int flag = 0;

for (i=0;i<100;i++)

{

if((s[i]>='a'&&s[i]='A'&&s[i]<='Z'))

{

if(flag ==0) a[n]=i;//每一个新单词的第一个位置

flag =1;

}

else

{

if(flag ==1)//说明出现过字母。

{

n++;

b[n-1] = i-1;//每个单词最后位置

}

flag =0;//重新标记。

}

}

//注意。

if(flag==1)//for循环结束要判断是否最后一位是字母。

{

n++;

b[n-1]=i-1;

}

希望能帮到你。

b[1]-a[1]就是这个字母的长度。

可能是字符串没加\0吧,数组b[80]没显示0初始化,find函数里也没有显式的加\0。没看懂你的算法,所以只能这样猜了。写了个标准库的方法,可以参考下:

#include

#include

#include

using namespace std;

int main()

{

typedef string::size_type ST;

//存放所有单词的长度、单词本身、单词出现的位置

multimap > m;

string line;

cout<

getline(cin,line);

ST pos=0;

while((pos=line.find(','))

line[pos]=' ';//替换掉所有逗号

istringstream ins(line);

string token;

pos=0;

while(ins>>token)

m.insert(pair >(token.size(),

pair(token,pos=line.find(token,pos)+1)));

ST t=m.rbegin()->first;

//map容器默认是按照key排序的,最后的长度最大,往前找

for(multimap >::reverse_iterator it=m.rbegin();

it!=m.rend();++it)

if(it->first==t)

coutsecond.first<

second.second<

else break;

}

如果有长度一样的词,按照倒序显示,这样简单些。起始位置从1开始算的。

C语言编程求一个英文句子中的单词数和最长单词的位置、长度及输出这个单词._

: #include #define n 100char *maxlenword(char statement[],char maxword[]) { int i = 0,j; char word[n]; maxword[0] = '\0'; for(i = 0; statement[i]; i++) { if(!isalpha(statement[i++])) continue; --i; j = 0; while(statement[i] && isalpha(statement[i])) word[j++] = ...

c语言 写一个函数,找出一个英文句子中最长的单词_

: #include #include #include #define N 100 char *maxlenword(char statement[],char maxword[]) { int i = 0,j; char word[N]; maxword[0] = '\0'; for(i = 0; statement[i]; i++) { if(!isalpha(statement[i++])) continue; --i; j = 0; while(...

C语言 输入一个英文句子 找出其中最长的英文单词 输出长度和单词_

: #include #define n 100 char *maxlenword(char statement[],char maxword[]) { int i = 0,j; char word[n]; maxword[0] = '\0'; for(i = 0; statement[i]; i++) { if(!isalpha(statement[i++])) continue; --i; j = 0; while(statement[i] && isalpha(statement[i])) word[j++] = ...

编写程序.用C语言通过函数调用方式统计一个英文句子中最长单词的字符数_

: #include int main() { char sztext[100] = {0}; int nmaxbegin = 0, nmaxlen = 0, ncurlen = 0; gets(sztext); sztext[strlen(sztext)] = ' '; for (int i = 0; i { if (sztext[i] != ' ') { ncurlen ++; } else { if (nmaxlen { nmaxbegin = i - ncurlen; nmaxlen = ncurlen; } ncurlen = 0; ...

C语言:统计最长单词长度和在字符串中的位置,请能讲讲具体思路和这些空都是怎么得出来的么?谢谢!

: 第一空,按照注释return 1第二空,按照注释return 0第三空,扫描字符串string,直到字符串结束符'\0',故string[i]!='\0'第四空,按照注释flag=0第五空,alph函数return0, 故当前一个空格字符,len计算单词数,故len++, length是用来计算每个单词的长度

输入一个英文句子,统计其中单词的个数,输出最长单词在文本中的位置(是文本中的第几个字符)和长度;_

: 这个好像有例子

用c语言编程:输入一段英文句子,计算该句子的单词个数_

: #include "stdio.h" main() { char *s; int cnt = 0; printf("please enter the sentence\n"); gets(s); while(*s) { if(*s==' ') cnt++; s++; } printf("the sectence have %d word\n",cnt+1); }

C语言程序设计,输入一个英文句子,统计单词的个数._

: #includeint main(){ char str[256]; int i,count=0; printf("Please input an English sentence:\n"); gets(str); for(i=0;str[i]!='\0';i++) { if(str[i]==' ') count++; //你这只是算有几个空格字符数 } count+=1; //单词数=空格数+1 printf("The number of words are:%d\n",count); return 0; //main()函数是有返回值的}...

1.输入一段英文,将其中最长的一个单词打印出来.求c语言程序_

: //输入一段英文,将其中最长的一个单词打印出来.求c语言程序#include //这里的单词之间以空格分开,否则不能知道那个是单词啊.#includeint main(){ char ch[200]; gets(ch); char str[200]; //用以存放最大的单词,假设就是一...

c语言编程,实现计算一个英文文本文件中段落数,单词数以及出现次数最多的十个单词?_

: 先将文件指针移到文件的最后,在将次数输出fseek(fp,0,SEEK_END);fprintf(fp,"%s%d","word出现",occur);

python输入一个英文句子、统计单词个数_C语言编程求一个英文句子中的单词数和最长单词的位置、长度及输出这个单词。c++编程 从键盘输入一个英文...相关推荐

  1. C语言 输入一个字符串,统计字符个数,并按照倒序输出该字符串。

    题目:C语言 输入一个字符串,统计字符个数,并按照倒序输出该字符串. #include<stdio.h>void main() {char str[10];scanf("%s&q ...

  2. ACMNO.22 C语言-公约公倍2 写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。 输入 两个数 输出 最大公约数 最小公倍数

    题目描述 写两个函数,分别求两个整数的最大公约数和最小公倍数, 用主函数调用这两个函数,并输出结果两个整数由键盘输入. 输入 两个数 输出 最大公约数 最小公倍数 样例输入 6 15 样例输出 3 3 ...

  3. 写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。

    题目描述 写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入. 输入 两个数 输出 最大公约数 最小公倍数 样例输入 6 15 样例输出 3 30 ...

  4. 定义两个长度相同的整型数组,通过键盘输入给这两个数组赋值。编写程序交换这两个数组对应位置的数值,如数组a[] ={1,2,3,4,5},数组b[] = {6,7,8,9,10}

    定义两个长度相同的整型数组,通过键盘输入给这两个数组赋值.编写程序交换这两个数组对应位置的数值,如数组a[] ={1,2,3,4,5},数组b[] = {6,7,8,9,10},交换后,数组b[] = ...

  5. c语言一个整数各位数字个数_C语言编写程序输出10个整数中最小值或最大值

    C语言编写程序输出10个整数中最小值或最大值 这是一个比较基础,同时也包含C语言中诸多特点的程序,仔细体会有很多的格式规则和技巧.其中包括:输入语句,输出语句,数组,分支结构,循环结构.希望广大C语言 ...

  6. c语言开发一个学生成绩统计程序,用C语言实现成绩统计程序的设计课程设计报告.doc...

    武汉理工大学华夏学院 课程设计报告书 课程名称: 数据结构课程设计 题 目:用C语言实现成绩统计程序的设计 系 名: 信息工程系 专业班级: 计算机1121 姓 名: 学 号: 指导教师: 20**年 ...

  7. c语言统计出现个数,C语言统计数字出现的个数

    程序功能:统计数字出现的个数 例如:输入1 2 3 1 2 4 2 3 1 输出:1 3 2 3 3 2 4 1 能看懂吗?就是1出现3次,2出现3次,3出现2次,4出现1次 #define M 50 ...

  8. 写两个函数 分别求两个整数的最大公约数和最小公倍数 用主函数调用这两个函数 并输出结果 两个整数由键盘输入

    写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果.两个整数由键盘输入. 思路:先写一个主函数,通过主函数调用子函数来分别求出最大公倍数和最小公约数. 代码如下: ...

  9. c语言编程从键盘上输入两个整数m和n,C语言习题 求键盘输入的两个正整数的最大公约数和最小公倍数...

    C语言习题 求键盘输入的两个正整数的最大公约数和最小公倍数以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! C语言习题 求 ...

最新文章

  1. IntelliJ IDEA 添加本地xsd文件
  2. Coursera 吴恩达《Machine Learning》视频 + 作业
  3. 后端 消息 转发_【后端开发】Servlet怎么转发
  4. 进程间通信之管道通信
  5. AndroidStudio工程打包aab文件
  6. windows核心编程之DIPS工具学习总结
  7. SPSS基础操作详解---系统环境设置篇
  8. 数据的类型:分类数据、顺序数据、数值型数据
  9. Spark基本工作流程和作业调度
  10. angularjs技术
  11. 2018年世界计算机超算大赛,2018ASC世界大学生超算竞赛开赛:11队齐破赛会纪录...
  12. 在EXCEL中插入超级链接
  13. 日系插画学习笔记(五):日系角色脸部画法-1头部
  14. 《Adobe Fireworks CS6中文版经典教程》——1.3使用属性面板
  15. 小超模滕文泽 受邀担任第七届少儿模特明星盛典代言人
  16. 推断统计--假设检验
  17. 乐学偶得《零基础Python入门编程全栈量化AI》课程238课的详细完整代码怎么样实现?靠谱答案来啦啦啦╭(╯^╰)╮
  18. SSL证书的工作原理是怎么样的?
  19. 清华大学计算机科学与技术专业课程
  20. 【法律】如何保障企业的合法权益:保密协议模板

热门文章

  1. android 添加json动画,Lottie 站在巨人的肩膀上实现 Android 酷炫动画效果
  2. 攻防世界 Crypto高手进阶区 3分题 wtc_rsa_bbq
  3. 分部积分题型总结笔记(分部积分超强拓展)
  4. 未来教育的趋势:线上网校和线下教育相结合
  5. 电脑端口号怎么查看?运行cmd命令查看电脑端口的方法图解
  6. Nest+Vue实战:工作计划管理系统
  7. 青龙面板薅羊毛教程之小米电动车
  8. 程序员的四个暑假:从打工开始到打工结束
  9. 传Facebook来华招聘:年薪20万美元+美国绿卡
  10. EDraw 亿图图示设计软件 一款好用的绘制网络拓扑图的软件