项目1:分支结构程序设计体验
(1)阅读课件中“给两个数,求两数中的大者”例子,结合对课堂讲授内容的理解,仔细领会让计算机进行判断,然后根据不同情况进行处理的方法。(2)我们要解决的问题如下,上机前在作业(草稿)本上编程完成下面的工作:
问题:给定两个正整数,求出两数的正差值并输出。
样例输入 样例输出
7 10 3
12 7 5
提示:“正差值”意味着无论这两数孰大孰小,输出的差值为非负数。可以自行加入些“请输入……”,“……是:”之类的提示,让你的程序有“友好”的用户界面。
(3)发表博文作为上机报告,建议标题:第7周任务1-求两数正差值。
【参考解答】
由于重在提前体验,要考察的是同学们的模仿能力。在读懂课堂上所讲程序,以及掌握思路的情况下,即使对语法的要求不甚明了,也能“照猫画虎”地做出来。
与课堂中使用的“给两个数,求两数中的大者”例子相对应,给出几种解法供同学们参考。
切记参考要点:
if (任务能够完成) 读参考解答,并和自己的做法进行对照; else 读完参考解答,关闭页面,独立编写自己的程序;
解答一:根据比较结果,直接输出大值减小值的差
#include <iostream> using namespace std; int main( ) { int a,b; cout<<"请输入a、b的值:"; cin>>a>>b; cout<<a<<" 和 "<<b<< " 之间的正差值是: "; if(a>b) cout<<a-b; else cout<<b-a; cout<<"\n"; return 0; }
解答二:用另一个变量,记录下大值减小值的结果后再输出
#include <iostream> using namespace std; int main( ) { int a,b,c; cout<<"请输入a、b的值:"; cin>>a>>b; if(a>b) c=a-b; else c=b-a; cout<<a<<" 和 "<<b<< " 之间的正差值是: "<<c<<"\n"; return 0; }
解答三:先通过交换,保证a>=b后,输出a-b
#include <iostream> using namespace std; int main( ) { int a,b,t; cout<<"请输入a、b的值:"; cin>>a>>b; if(a<b) //如果a<b,交换a、b的值,使a≥b成立 { t=a; a=b; b=t; } cout<<a<<" 和 "<<b<< " 之间的正差值是: "<<a-b<<"\n"; return 0; }
解答四:先算出两数的差,如果是负值,求出其相反数并输出
#include <iostream> using namespace std; int main( ) { int a,b,c; cout<<"请输入a、b的值:"; cin>>a>>b; c=a-b; if(c<0) //如果这个差值是负的,c赋值为c的相反数-c c=-c; cout<<a<<" 和 "<<b<< " 之间的正差值是: "<<c<<"\n"; return 0; }
【结语】
同一任务,可以有不同解法,不同程序员会写出不同程序。
先有思路,程序自然写出。