03_统计单词个数、求阶乘、输出最短和最长的字符串
来源:互联网 发布:java随机产生10个数 编辑:程序博客网 时间:2024/05/22 04:39
1. 题目描述:
编一个程序,读入用户输入的,以“.”结尾的一行文字,统计一共有多少个单词,并分别输出每个单词含有多少个字符。
(凡是以一个或多个空格隔开的部分就为一个单词)
输入:
输入包括1行字符串,以“.”结束,字符串中包含多个单词,单词之间以一个或多个空格隔开。
输出:
可能有多组测试数据,对于每组数据,
输出字符串中每个单词包含的字母的个数。
样例输入:
hello how are you.
样例输出:
5 3 3 3
参考程序(与此题类似,但是非此题解)
2. 题目描述:
输入n,
求y1=1!+3!+...m!(m是小于等于n的最大奇数)
y2=2!+4!+...p!(p是小于等于n的最大偶数)。
输入:
每组输入包括1个整数:n
输出:
可能有多组测试数据,对于每组数据,
输出题目要求的y1和y2
样例输入:
4
样例输出:
7 26
参考答案
3. 题目描述:
输入多行字符串,请按照原文本中的顺序输出其中最短和最长的字符串,如果最短和最长的字符串不止一个,请全部输出。
输入:
输入包括多行字符串,字符串的长度len,(1<=len<=1000)。
输出:
按照原文本中的顺序输出其中最短和最长的字符串,如果最短和最长的字符串不止一个,请全部输出。
样例输入:
hello
she
sorry
he
样例输出:
he
hello
sorry
参考答案
编一个程序,读入用户输入的,以“.”结尾的一行文字,统计一共有多少个单词,并分别输出每个单词含有多少个字符。
(凡是以一个或多个空格隔开的部分就为一个单词)
输入:
输入包括1行字符串,以“.”结束,字符串中包含多个单词,单词之间以一个或多个空格隔开。
输出:
可能有多组测试数据,对于每组数据,
输出字符串中每个单词包含的字母的个数。
样例输入:
hello how are you.
样例输出:
5 3 3 3
参考答案
#include<stdio.h> #include<string.h>int main(){char str[1000], index, str_len, k;int word_len[1000]={0}; //存放各单词长度的数组while(gets(str)){index=0;str_len = strlen(str);memset(word_len, 0, 1000);k=0;while((' ' == str[k]) && (k<str_len-1))//跳过开头的空格{k++;}while(k<str_len-1){if(str[k] != ' ')//读到的是字符{word_len[index] += 1;k++;}else//读到的是空格{index++;while((k<str_len-1) && (' ' == str[k]))//跳过中间连续的空格{k++;}}}for(k=0; k<index; k++){printf("%d ", word_len[k]);}printf("%d\n", word_len[k]);}return 0;}
参考程序(与此题类似,但是非此题解)
#include<stdio.h>#include<stdlib.h>#include<string.h>void main(){char words[100][100];int w_index,w_num,i=0;char ch;printf("Input a string :\n");w_num = 0;w_index = 0;while((ch = getchar()) != '.'){if(ch == ' '){if(w_index){w_index = 0;w_num++;}}else{words[w_num][w_index++]=ch;words[w_num][w_index] = '\0';}}printf("\nThere are %d words.\n", w_num + 1);for(i=0; i <= w_num; i++) { printf("%s\t %d\n", words[i], strlen(words[i])); } }
2. 题目描述:
输入n,
求y1=1!+3!+...m!(m是小于等于n的最大奇数)
y2=2!+4!+...p!(p是小于等于n的最大偶数)。
输入:
每组输入包括1个整数:n
输出:
可能有多组测试数据,对于每组数据,
输出题目要求的y1和y2
样例输入:
4
样例输出:
7 26
参考答案
#include <stdio.h>long int result[15]; //存储 1 到 14 的阶乘的结果到 result 数组中,避免重复计算//对于long int 类型,计算到 15! 时开始溢出void initialize(){ long int i,tmp=1; for(i=1; i<14; i++){ tmp=tmp*i; result[i]=tmp; } }int main(){ int n,i; long int sum1, sum2; initialize(); while(scanf("%d",&n) != EOF){ sum1 = sum2 = 0;//直接利用 result 数组中存储的结果计算阶乘 for(i=1; i<=n; i++){ if(i%2==1) sum1 += result[i]; else sum2 += result[i]; } printf("%ld %ld\n", sum1 ,sum2); } return 0;}
3. 题目描述:
输入多行字符串,请按照原文本中的顺序输出其中最短和最长的字符串,如果最短和最长的字符串不止一个,请全部输出。
输入:
输入包括多行字符串,字符串的长度len,(1<=len<=1000)。
输出:
按照原文本中的顺序输出其中最短和最长的字符串,如果最短和最长的字符串不止一个,请全部输出。
样例输入:
hello
she
sorry
he
样例输出:
he
hello
sorry
参考答案
#include<stdio.h> #include<string.h> #include <limits.h> typedef struct strs{ int len; //用于记录字符串长度长度 char arr[1001]; //用于存储输入的字符串}strs; strs store[10001]; int main() { int i, index = 0; int max_len = INT_MIN, min_len = INT_MAX; while(scanf("%s", store[index].arr) != EOF){ store[index].len = strlen(store[index].arr); if(max_len < store[index].len){ //计算最大长度 max_len = store[index].len; } else if(min_len > store[index].len){ //计算最小长度 min_len = store[index].len; } index++; } for(i = 0;i < index;i++){ //输出最短字符串 if(store[i].len == min_len){ puts(store[i].arr); } } for(i = 0;i < index;i++){ //输出最长字符串 if(store[i].len == max_len){ puts(store[i].arr); } } return 0; }
- 03_统计单词个数、求阶乘、输出最短和最长的字符串
- 统计单词个数和查找最长最短单词
- 字符串-最长最短单词
- 计算共有多少个单词,并输出最长和最短的单词
- 习题9.39输出最长和最短单词
- 计算字符串中有多少单词,并输出最长最短的单词。(c++primer 9.39)
- 最长最短单词
- 最长最短单词
- 最长最短单词
- 查找最长和最短单词
- 这次带来的小程序是:确定一个字符串有多少个单词,然后最长单词和最短单词有哪些
- 输入一串字符,找出最长和最短单词并输出
- 统计一串字符串中,单词的个数,并输出这些单词,测试例子
- 25 最长最短单词
- 25:最长最短单词
- C++ Primer 9.40习题 计算sentence有多少个单词,并输出最长、最短的单词d
- 统计字符串中单词的个数
- 统计字符串中单词的个数
- POJ-1743-Musical Theme
- 题目1171:C翻转
- linux下 ora-39001,ora-39142 解决办法
- hdu4520 小Q系列故事——最佳裁判
- S4,Storm; Mesos,YARN;Spark,Hadoop---S4
- 03_统计单词个数、求阶乘、输出最短和最长的字符串
- poj 1260 Pearls
- 题目1172:哈夫曼树
- S4,Storm; Mesos,YARN;Spark,Hadoop---YARN
- HOG算子
- 内核编译直接生成uImage----make uImage
- 题目1175:打牌
- 前端工程性能与优化
- QWidget设置背景颜色