c语言金典100题“从入门到放弃”10-15

[复制链接]
发表于 2025-12-23 20:33:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

## 过滤多余的空格
形貌
一个句子中大概有多个一连空格,过滤掉多余的空格,只留下一个空格。
输入
输入
1行&#xff
1a;
一行,一个字符串(长度不凌驾
1000),句子的头和尾都没有空格。
输出
输出
1行&#xff
1a;
过滤多个空格之后的字符串
输入样例
1 
  1. Hello      world.This is    c language.
复制代码
输出样例
1
  1. Hello world.This is c language.
复制代码
参考代码
  1. #include<bits/stdc&#4
  2. 3;&#4
  3. 3;.h>
  4. using namespace std;
  5. int main()
  6. {
  7.         int k;
  8.         string a,s&#6
  9. 1;&#
  10. 34;&#
  11. 34;;
  12.         getline(cin,a);
  13.         k&#6
  14. 1;a.size();
  15.         for(int i&#6
  16. 1;0;i<k;i&#4
  17. 3;&#4
  18. 3;){
  19.                 if(a[i]&#6
  20. 1;&#6
  21. 1;&#
  22. 39; &#
  23. 39;&&a[i-
  24. 1]!&#6
  25. 1;&#
  26. 39; &#
  27. 39;){
  28.                         s&#4
  29. 3;&#6
  30. 1;a[i];
  31.                 }
  32.                 if(a[i]!&#6
  33. 1;&#
  34. 39; &#
  35. 39;)
  36.                         s&#4
  37. 3;&#6
  38. 1;a[i];
  39.         }
  40.         cout<<s<<endl;
  41.                        
  42.         return 0;
  43. }
复制代码
##字符串的包罗题目
形貌
现在有2个字符串a,b,请你判断它们之间的包罗关系。
若能在b串中发现a串,则称&#xff
1a;a in b。
若二者相称,则输出same。
若无包罗关系,则输出
no。
比方&#xff
1a; app和apple
则
app in apple
输入
输入2行&#xff
1a;
每行
1个字符串,最多
1000个字符,不含空格。
输出
输出
1行&#xff
1a;
字符串a和b的关系。
输入样例
1 
  1. app
  2. apple
复制代码
输出样例
1
  1. app in apple
复制代码
输入样例 2 
  1. ppap
  2. apple
复制代码
输出样例 2
  1. no
复制代码
参考代码
  1. #include<bits/stdc&#4
  2. 3;&#4
  3. 3;.h>using namespace std;int main(){        int k,m;        string a,s;        getline(cin,a);        getline(cin,s);        k&#6
  4. 1;a.find(s,0);        m&#6
  5. 1;s.find(a,0);        if(k!&#6
  6. 1;-
  7. 1&&m!&#6
  8. 1;-
  9. 1){                cout<<&#
  10. 34;same&#
  11. 34;;        }        else if(k!&#6
  12. 1;-
  13. 1){                cout<<s<<&#
  14. 34; in &#
  15. 34;<<a;        }        else if(m!&#6
  16. 1;-
  17. 1){                cout<<a<<&#
  18. 34; in &#
  19. 34;<<s;        }        else{                cout<<&#
  20. 34;
  21. no&#
  22. 34;;        }                        return 0;}
复制代码
##盘算面积(area)
形貌

小开是某小学的门生。在数学课上,小开的数学老师孟老师教会了各人梯形面积的盘算公式&#xff
1a;梯形面积&#6
1;(上底&#4
3;下底)*高/2。孟老师部署了多个关于梯形面积的盘算题,作为当天的家庭作业。小开在完成了标题以后,决定编写一个步伐盘算梯形面积,查验本身盘算的结果。给定梯形的上底a、下底b、高h的值(单位:厘米),请盘算输出梯形的面积s(面积:平方厘米)。
输入

一行,三个正整数a,b,h
输出

一行,一个正整数s
输入样例
1 
  1. 3 6 5
复制代码
输出样例
1
  1. 22
复制代码
提示
样例分析&#xff
1a;

面积为(
3&#4
3;6)*5/2&#6
1;
22,结果取商的整数部门,没有小数。

【数据规模与约定】
对于50%的数据,
1<&#6
1;a,b,h<&#6
1;50000。
对于
100%的数据,
1<&#6
1;a,b,h<&#6
1;
1000000000。
结果取商的整数部门,没有小数。
参考代码
  1. #include<bits/stdc&#4
  2. 3;&#4
  3. 3;.h>
  4. using namespace std;
  5. int main(){
  6.         long long a,b,h,s;
  7.         cin>>a>>b>>h;
  8.         s&#6
  9. 1;(a&#4
  10. 3;b)*h/2;
  11.         cout<<s;
  12.         return 0;
  13. }
复制代码
##括号匹配
形貌

假设表达式中允许包罗圆括号和方括号两种括号,其嵌套的序次随意,如([]())或[([][])]等为准确的匹配,
[(])或([]()或(()))均为错误的匹配。
本题的使命是查验一个给定表达式中的括号是否准确匹配。
输入一个只包罗圆括号和方括号的字符串,判断字符串中的括号是否匹配,匹配就输出“OK”,不匹配就输出“Wrong”。
输入

一行字符,只含有圆括号和方括号,括号个数小于 255。
输出

匹配就输出一行文本“OK”,不匹配就输出一行文本“Wrong”。
输入样例
1 
  1. [(])
复制代码
输出样例
1
  1. Wrong
复制代码
  1. #include<bits/stdc&#4
  2. 3;&#4
  3. 3;.h>
  4. using namespace std;
  5. int main() {
  6.         //freopen(&#
  7. 34;.in&#
  8. 34;,&#
  9. 34;r&#
  10. 34;,stdin);
  11.         //freopen(&#
  12. 34;.out&#
  13. 34;,&#
  14. 34;w&#
  15. 34;,stdout);
  16.         stack<char> s;
  17.         string a;
  18.         cin>>a;
  19.         int i,j;
  20.         for(i&#6
  21. 1;0; i<a.size(); i&#4
  22. 3;&#4
  23. 3;) {
  24.                 if(a[i]&#6
  25. 1;&#6
  26. 1;&#
  27. 39;(&#
  28. 39;||a[i]&#6
  29. 1;&#6
  30. 1;&#
  31. 39;[&#
  32. 39;) {
  33.                         s.push(a[i]);
  34.                 }
  35.                 if(a[i]&#6
  36. 1;&#6
  37. 1;&#
  38. 39;)&#
  39. 39;) {
  40.                         if(s.empty()) {
  41.                                 cout<<&#
  42. 34;Wrong&#
  43. 34;<<endl;
  44.                                 return 0;
  45.                         }
  46.                         if(s.top()&#6
  47. 1;&#6
  48. 1;&#
  49. 39;(&#
  50. 39;) {
  51.                                 s.pop();
  52.                         }
  53.                 }
  54.                 if(a[i]&#6
  55. 1;&#6
  56. 1;&#
  57. 39;]&#
  58. 39;) {
  59.                         if(s.empty()) {
  60.                                 cout<<&#
  61. 34;Wrong&#
  62. 34;<<endl;
  63.                                 return 0;
  64.                         }
  65.                         if(s.top()&#6
  66. 1;&#6
  67. 1;&#
  68. 39;[&#
  69. 39;) {
  70.                                 s.pop();
  71.                         }
  72.                 }
  73.         }
  74.         if(s.empty()) {
  75.                 cout<<&#
  76. 34;OK&#
  77. 34;<<endl;
  78.         } else {
  79.                 cout<<&#
  80. 34;Wrong&#
  81. 34;<<endl;
  82.         }
  83. //fclose(stdin);
  84. //fclose(stdout);
  85. return 0;
  86. }
复制代码
##汉诺塔
形貌

有三根相邻的柱子,标号为a,b,c,a柱子上从下到上按金字塔状叠放着n(n <&#6
1;
15)个差异巨细的圆盘,你可以借助b柱子,把全部盘子一个一个移动到柱子c上,而且每次移动同一根柱子上都不能出现大盘子在小盘子上方,请你输出移动的步调。
输入

输入
1行&#xff
1a;
第
1行&#xff
1a;
1个整数n,
1<&#6
1; n <&#6
1;
15。
输出

输出
1行&#xff
1a;
第
1行&#xff
1a;多少行,体现移动的步调,格式参考样例
输入样例
1 
  1. 1
复制代码
输出样例
1
  1. 1:a->c
复制代码
输入样例 2 
  1. 3
复制代码
输出样例 2
  1. 1:a->c2:a->b
  2. 1:c->b
  3. 3:a->c
  4. 1:b->a2:b->c
  5. 1:a->c
复制代码
  1. #include<bits/stdc&#4
  2. 3;&#4
  3. 3;.h>using namespace std;void hnt(int n,char a,char b,char c){        if(n&#6
  4. 1;&#6
  5. 1;0){                return ;        }        hnt(n-
  6. 1,a,c,b);//n-
  7. 1 个盘子,从a移动到b         cout<<n<<&#
  8. 34;:&#
  9. 34;<<a<<&#
  10. 34;->&#
  11. 34;<<c<<endl;//第n个盘子,从a移动到c         hnt(n-
  12. 1,b,a,c);//n-
  13. 1 个盘子,从b移动到c } int main(){        int n;                cin>>n;        hnt(n,&#
  14. 39;a&#
  15. 39;,&#
  16. 39;b&#
  17. 39;,&#
  18. 39;c&#
  19. 39;);//n个盘子从a移动到c         return 0;}
复制代码

12
3.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表