项目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;
}
【结语】
同一任务,可以有不同解法,不同程序员会写出不同程序。
先有思路,程序自然写出。