网易云课堂 计算机入门 期末 编程题
来源:互联网 发布:人肉搜索引擎软件 编辑:程序博客网 时间:2024/05/24 03:25
你的程序要读入一篇英文文章,然后统计其中的单词数来输出。需要统计的数据为:
总的单词数量;
含有1个字母到10个字母的单词的数量。
单词和单词的间隔是由以下标点符号形成的:空格、tab、回车换行、逗号、句号、问号、括号、双引号和冒号。这些符号不能被计入单词的长度中。
因此,对于下面的句子:
"What you see is a very hefty response," said CNN Aviation Correspondent Rene Marsh.
其中的单词为:
What you see is a very hefty response said CNN Aviation Correspondent Rene Marsh
共14个。注意虽然这里的response,"后面跟了空格,我们并不能保证所有的输入中都会有这样规矩的空格。
单引号(表示缩写的')和连字号(-)视做单词的一部分,所以“he's”是一个单词,长度为4;而“F-16 fighter jets”是三个单词。为了你的程序的方便,输入数据中不会出现两个连续的连字号。
输入格式:
一篇英文文章。
如何知道输入结束了?
如果使用scanf,它会返回这次读到了几个变量的值,当这个值小于你要求读的变量的数量时,表示输入结束了;
如果使用getchar,它在输入结束时返回EOF。
输出格式:
十一个数字,依次是单词数量和含有1到10个字母的单词的数量,以空格分隔,最后不含空格。
输入样例:
F-16 fighter jets escorted two passenger planes into Atlanta's Hartsfield-Jackson International Airport on Saturday after a bomb threat made on Twitter was deemed credible, according to military officials.
Southwest Airlines Flight 2492 and Delta Flight 1156 landed safely at the airport and were searched by bomb disposal units, according to airline officials. Nothing out of the ordinary was found, officials said.
Delta spokesman Morgan Durant said, "It was a Portland, Oregon, to Atlanta, Georgia, flight. Delta is supporting the sweeping process carried out by authorities."
输出样例:
85 2 11 11 11 6 11 10 10 9 1
#include <stdio.h>
#include <string.h> // 函数 strlen 的头文件#include <ctype.h> // ispunct 的头文件
#define NUM 10 // 常量定义
int main()
{
if(freopen("D:\\shuowen\\in.txt", "r", stdin) == NULL) { // 重定向
printf("error redirecting stdin\n");
return -1;
}
char string[10000],count[NUM];
int num=0;
int i;
for ( i = 0; i<NUM;i++) { // 数组初始化
count[i] = 0;
}
int b;
while (scanf("%s",string)!=EOF ) { // 字符串输入 输入在循环条件内部
b = strlen(string); // 字符长度函数
int n=0;
int i=0;
int a=0;
int t;
do {
if(ispunct(string[i])&&(string[i]!='\'')&&(string[i]!='-')) { // 判断 特殊字符的函数 除“-” “\ ’ ”
n++;
}
i++;
} while (i<b);
b = b-n;
num++;
if ( b>=1 && b<=NUM) {
count[b-1]++;
}
/* switch (b) {
case 1:
q++;
break;
case 2:
w++;
break;
case 3:
e++;
break;
case 4:
r++;
break;
case 5:
t++;
break;
case 6:
y++;
break;
case 7:
u++;
break;
case 8:
k++;
break;
case 9:
o++;
break;
case 10:
p++;
break;
default:
break;*/
}
// printf("%d %d %d %d %d %d %d %d %d %d \n", q,w,e,r,t,y,u,k,o,p);
printf("%d",num);
for ( i = 0; i<NUM; i ++){ //数组输出 需要循环
printf(" %d", count[i]);
}
return 0;
}
- 网易云课堂 计算机入门 期末 编程题
- 网易云课堂 计算机入门 期末 编程题
- 网易云课堂JAVA入门编程题7-1
- 网易云课堂JAVA入门编程题7-2
- 网易云课堂JAVA入门编程题6-1
- 网易云课堂JAVA入门编程题6-2
- 网易云课堂JAVA入门编程题5-1
- 网易云课堂java进阶 编程题
- 网易云课堂 Linux内核分析期末总结
- 数据结构(陈越)-网易云课堂 第一周编程题
- 网易云课堂JAVA进阶编程题3
- 网易云课堂-Java应用基础:入门篇-第1章编程题-1.温度转换(3分)
- 网易云课堂
- 聊一聊【网易云课堂】
- 网易云课堂-数据结构
- 网易云课堂 商务英语
- 网易云课堂java程序设计(第一周编程作业)
- 网易云课堂java程序设计(第二周编程作业)
- java获取汉字拼音首字母
- Dalvik VM和JVM的比较
- PHP的spl_autoload_register用法
- CSS Display(显示)和visibility(可见性)
- poj----2253
- 网易云课堂 计算机入门 期末 编程题
- PMP学习笔记(1)工作分解结构-资源分解结构-职责分配矩阵-资源日历
- [线性DP]奶牛的锻炼
- 前言
- tjut 4899
- 【打CF,学算法——一星级】CodeForces 701A Cards(水题)
- UVA196Spreadsheet
- poj---3126
- 【杭电1905】Pseudoprime numbers