double型未初始化直接運算出現小錯誤

在使用double型加法時,由於沒有對定義值進行初始化就直接運算,出現問題。如下

// test.cpp : 定義控制檯應用程序的入口點。
//使用靜態存儲實現,優點:簡單、易實現,缺點:不能釋放內存、對電腦要求高,
//不能返回數

#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{
	double A[4][4];
	double sum_d;

	//對矩陣A、B進行初始化
	for(int i=0; i<4; i++)
	{
		for(int j=0; j<4; j++)
		{
			//使用rand函數隨機賦值,控制在一定範圍內30-70;101-135
			A[i][j]=30+rand()%(70-30+1);
			//B[i][j]=A[i][j];
		}
	}

	cout<<"A[4][4]="<<endl;
	for(int i=0; i<4; i++)
	{
		for(int j=0; j<4; j++)
		{
			cout<<A[i][j]<<' ';
			//B[i][j]=101+rand()%(135-101+1);
			if(j==3)
				cout<<endl;
		}
	}

	cout<<"A[4][4]對角線之和="<<endl;
	for(int i=0; i<4; i++)
	{
		for(int j=0; j<4; j++)
		{
			if(i==j)
			{
				sum_d=sum_d+A[i][j];
			}
			if(i+j==3)
			{
				sum_d=sum_d+A[i][j];
			}
			
		}
	}

	cout<<sum_d<<endl;


	
}
運行結果爲:

2條對角線值和出現亂碼;後續才注意到原來是sum_d沒有初始化,當修改初始化爲double sum_d=0.0後,運行截圖

這樣就解決。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章