2017-10-12 24 views
-5

當我編譯並運行我得到的程序時:您出生的那一年:0 「0」來自哪裏? 下面是代碼:「0」cout後不知從何處入手

//! Program written by Samer!// 
#include <iostream> 
using namespace std; 
int main() 
{ 

double Year, Age; 
cout <<"The year you were born: "<< Year; //!Here the error appears!// 
cin >>Year; 
while (Year > 2017) //!That't a While loop!// 
{ 
    cout <<"Please enter a valid Year:" << Year << endl; 
    cin >>Year; 
} 
Age=2017-Year; 
cout <<"Your age is:" <<Age; 
std::cin.get(); 
return 0; 
} 
+1

你爲什麼要做'年份'?在'//!這裏出現錯誤!//'? – NathanOliver

+3

您似乎正在打印未初始化的「Year」。讀取一個未初始化的變量可以做任何事情,包括返回值0.它似乎不打算在那裏打印它。這只是一個錯字嗎? –

+2

這是您的調試器的問題,而不是Stack Overflow。 – MrEricSir

回答

3

你流變量Year

cout <<"The year you were born: "<< Year; 
            ^^^^ 
  1. 你的代碼是由設計印刷Year。這是你要求它做的。如果您不想打印它,則請勿:cout <<"The year you were born: \n";
  2. Year尚未初始化,並且以這種方式使用它是未定義的行爲。在這種情況下,它似乎在初始化時打印內存中的內容。在你的情況下,它恰好打印0.