【教程】C++-賦值語句

【教程】C++001-賦值語句

在C++中,“=”爲賦值運算符而並非“等於”判斷。賦值語句是由賦值表達式再加上分號構成的表達式語句。它是程序中使用最多的語句之一。
一般形式爲:變量+表達式;
在賦值語句的使用中,要注意以下幾點:

  1. 由於賦值變量符(=)右邊的表達式也可以是賦值表達式。因此,下述形式
    變量=(變量=表達式);
    是成立的,從而形成嵌套的情形。展開後的一般形式爲
    變量=變量=···=表達式;
    例如,a=b=c=d=e=5;,它實際上等價於e=5;d=e;c=d;b=c;a=b;
  2. 在進行賦值運算時,如果賦值運算符兩邊的數據類型不同,系統就會自動進行類型轉換,即將賦值運算符右邊的數據類型轉換成左邊的數據類型。比如,當左邊是整型而右邊是實型(float、double、long double)時,將去掉小數部分並截取該整型對應的有效位數。

『例2.1』交換數值
輸入兩個正整數a和b,嘗試交換a、b的值,即使a的值等於b,b的值等於a,並輸出調換後的a、b值。
【分析】交換兩個變量的方法有很多,一般我們採用引入的三個變量的算法使兩個變量交換。可以想象爲一瓶醬油和一瓶醋進行交換,這是就很容易想到需要一個空瓶子來臨時放一下。
①將醬油倒入空瓶子;②將醋倒入醬油瓶中;③將原空瓶中的醬油倒入醋瓶中。
【程序】

//Example 2.1
#include <iostream>
using namespace std;
int main()
{
	int a,b,t;//t爲“空瓶子”
	cin>>a>>b;//輸入a和b的值
	t=a;a=b;b=t;//交換a和b的值
	cout<<a<<" "<<b;//輸出結果
	return 0;
}

『例2.2』圓柱體的表面積
輸入底面半徑r和高h,輸出圓柱體的表面積,保留3位小數。

輸入格式:

3.5 9

輸出格式:

274.889

【分析】圓柱體的表面積由三部分組成:上底面積、下底面積和側面積。由於上下底面積相等,完整的公式可以寫成:表面積*2+側面積。根據平面幾何知識,底面積=πr²,側面積=2πrh。
【程序】

//Example 2.2
#include <cstdio>
using namespace std;
int main ()
{
	const double P=3.1415926;//定義P(π)爲雙精度實型變量
	double r,h,s1,s2,s;//定義雙精度實型(float是單精度實型)
	scanf("%lf%lf",&r,&h);//注意r和h前面的“&”不能漏,double型用“%lf”
	s1=P*r*r;//計算單個底面積的面積
	s2=2*P*r*h;//計算側面積
	s=2*s1+s2;//計算總的面積,注意底面積有兩個,要“*2”
	printf("%0.3lf\n",s);//輸出結果,保留3位小數
	return 0;
}

『例2.3』雞兔同籠
數學中經典的“雞兔同籠”問題,已知頭共30個,腳共90只,問籠中的雞和兔各有多少隻?
【分析】設雞爲j只,兔爲t只,頭爲h個,腳爲f只,由此可得:
j+t=30
2*+4*t=90
假設籠中30個頭全都是兔,那麼都按每頭4只腳計算,總腳數爲(4*x)只,與實際腳數(f)的差等於0,則籠中全是兔(即雞位0只);如果這個差值大於0,說明多計算了腳數,凡是雞都多計算了兩隻腳,用它除以2就能得到雞的只數,算法爲:
①j=(4*h-f)/2
②2*j+4*j=90
注意這兩步運算的前後順序。
【程序】

#include <iostream>
#include <cstdio>
using namespace std;
int main ()
{
	int h=30,f=90,j,t;
	j=(4*h-f)/2;
	t=h-j;
	cout<<j<<" "<<t;
	return 0;
}

程序中語句自上而下的順序很關鍵,這類程序嚴格自上而下每條程序都被執行一次就稱爲順序程序。


作者SAY:

  • 本教程部分來源於《信息學奧賽一本通(C++版)》
  • 部分內容或代碼可能會存在問題或遺漏,望指出
  • YOU有更好的建議嗎?下方留言(〃‘▽’〃)

感謝您的閱讀(´・ᴗ・`)點個贊吧!

發佈了11 篇原創文章 · 獲贊 16 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章