当前位置:   article > 正文

C++编程基础实训-第1关:对称数生成_第1关:对称数生成

第1关:对称数生成

第1关:对称数生成

100

  • 任务要求
  • 参考答案
  • 评论

任务描述

本关任务:生成一个小于(包括)3位的正整数的对称数:如由123生成123321, 若输入为负数或0,返回-1,若输入大于3位的正整数,只取最后三位生成对称数。

相关知识

为了完成本关任务,你需要掌握:1.if 分支结构;2.for 循环结构。

if 分支结构

程序中有时需要根据某些特定的条件决定对数据进行不同的操作,这就需要一种判断和选择的机制。 C++提供 if 选择语句。其一般形式为:

 
  1. if (<条件表达式>) <语句>

此结构表示: 如果<条件表达式>的值为非0 (true),即“真”,则执行指定的<语句>,然后按顺序执行 if 语句的后继语句。如果<条件表达式>的值为0(false),即 “假”,则忽略<语句>,按顺序执行 if 语句的后继语句。 if 选择结构只有在条件为真时才执行指定的动作;否则就跳过这个动作。实际应用中,我们经常需要根据测试条件的真假分别执行不同的处理,这种情况下 if 选择结构用起来就不自然了。为此,C++ 提供了一种双分支选择结构—— if-else 选择结构,可以在条件为真或假时分别执行指定的不同动作。C++ 的 if-else 语句的一般形式为:

 
  1. if (<条件表达式>) <语句 1> else <语句 2>

else 和<语句 2>称为 else 分支或 else 子句。上述结构表示:如果<条件表达式>的值为非0(true),即“真”,则执行<语句 1>,执行完<语句 1>后继续执行整个 if-else 语句的后继语句;如果<条件表达式>的值为0(false),即“假”,那么跳过<语句 1>而执行<语句 2>,执行完<语句 2>后继续执行整个 if-else 语句的后继语句。也就是说,if-else 语句总是根据<条件表达式>的结果,选择<语句 1><语句 2>中的一个执行,执行完后,整个 if-else 语句就算执行完了。 #####for 控制结构 C++ 提供一种语句—— for 循环语句,也称计数循环。它的一般形式为:

 
  1. for (<初始化语句> ;[<条件表达式>]; [<增量表达式>] ) <语句>

其中,for 是 C 和 C++ 的关键字,表示 for 循环语句的开始。<初始化语句>可以是任何合法的语句,<条件表达式><增量表达式>则可以由任何合法的表达式充当,其中<初始化语句>通常是一个赋值语句,用来给循环控制变量赋初值;<条件表达式>是一个能够转换成逻辑值的表达式,它决定什么时候退出循环,该表达式可以为空(为空时逻辑值恒为true);<增量表达式>定义了循环控制变量每循环一次后按什么方式变化,该表达式也可以为空,这时不产生任何计算效果。<初始化语句>可以是表达式语句或声明语句,应该以 “;” 结束。<条件表达式><增量表达式>之间用 “;” 分开。<语句>for语句的循环体。

for语句的功能是:首先计算<初始化语句>,然后计算<条件表达式>的值,如果该值为false,则结束循环,跳过循环体的<语句>,转到整个for语句的后继语句继续执行;如果该值为true,则执行循环体的<语句>,执行完循环体后,紧接着执行<增量表达式>,再计算<条件表达式>的值,如果该值为true,则执行循环体的<语句>,再执行<增量表达式>,再计算<条件表达式>进行测试......,直到<条件表达式>的值为false,则结束循环,跳过循环体的<语句>,继续执行整个for语句的后继语句。

编程要求

根据提示,在右侧编辑器补充main函数,以实现生成一个小于(包括)3位的正整数的对称数的要求,若输入为负数或0,返回-1,若输入大于3位的正整数,只取最后三位生成对称数。

测试说明

平台会对你编写的代码进行测试:

测试输入:123456 预期输出:456654

测试输入:720 预期输出:720027


开始你的任务吧,祝你成功!

源代码

  1. #include <iostream>
  2. #include <cmath>
  3. using namespace std;
  4. int main()
  5. {
  6. int num;
  7. cin>>num;
  8. //请在此添加代码,输入数字,并判断是否为正数,不是则输出“-1”;
  9. //如果是大于3位的正整数,只取最后三位数字,并生成对称数;如果是小于等于三位的正整数,则直接生成对称数;
  10. /**********Program**********/
  11. if(num>0){
  12. int t;
  13. int a;
  14. a=num;
  15. for(t=0;num>0;t++){
  16. num=num/10;
  17. }
  18. num=a;
  19. if(t>3){
  20. cout<<num%1000;
  21. int j=0;
  22. for(;j<3;j++){
  23. cout<<num%10;
  24. num=num/10;
  25. }
  26. }else{
  27. cout<<num;
  28. int j=0;
  29. if(num>=100){
  30. for(;j<3;j++){
  31. cout<<num%10;
  32. num=num/10;
  33. }
  34. }else{
  35. for(;j<2;j++){
  36. cout<<num%10;
  37. num=num/10;
  38. }
  39. }
  40. }
  41. }else{
  42. cout<<"-1";
  43. }
  44. /********** End **********/
  45. return 0;
  46. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/580583
推荐阅读
相关标签
  

闽ICP备14008679号