居裡貓碰到了一個有趣的題目。
題目大致上的內容是要用七段顯示器做時間增加及減少。
那這裡無法使用原題目所需的環境跟設備,所以就用別的方法囉。請看~!!
題目大致上為:
題目一:
初始時間 00:00 → 00:01→…→10:00結束時間
題目二:
初始時間 10:00 → 09:59→…→00:00結束時間
以上分別是時間的增加及減少,
那原題目是需要使用到一些特別的設備及編譯環境,
但居裡貓手上沒也因此也無法在那上面實做,就用 VS2010 C++ 來做給大家參考看看囉。
那就來看看居裡貓的程式碼吧~!
// 123.cpp : 定義主控台應用程式的進入點。
//
#include "stdafx.h"
#include "iostream"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
cout << "Hello World!!" << endl;
//時間增加
int s0=0,s1=0,s2=0,s3=0; //模擬四個七段顯示器
cout << s0 << s1 << ":" << s2 << s3 << endl; //顯示初始時間
while(s0<1) //時間開始增加迴圈
{//分鐘十位數
while(s1<10)
{//分鐘個位數
while(s2<6)
{//秒鐘十位數
for(s3=0;s3<10;)
{//秒鐘個位數
cout << s0 << s1 << ":" << s2 << s3 << endl;
s3=s3+1;
}
s3=0;
s2=s2+1;
}
s2=0;
s1=s1+1;
}
s1=0;
s0=s0+1;
cout << s0 << s1 << ":" << s2 << s3 << endl;
}
//------------------------------分割線------------------------------------------------
//時間減少
int s0=1,s1=0,s2=0,s3=0; //模擬四個七段顯示器
cout << s0 << s1 << ":" << s2 << s3 << endl; //顯示初始時間
for(s0=0;;) //時間開始間少,現已減少時間開始迴圈
{//分鐘十位數
for(s1=9;;)
{//分鐘個位數
for(s2=5;;)
{//秒鐘十位數
for(s3=9;;)
{//秒鐘個位數
cout << s0 << s1 << ":" << s2 << s3 << endl;
s3=s3-1;
if(s3==0)
{
cout << s0 << s1 << ":" << s2 << s3 << endl;
break;
}
}
s2=s2-1;
if(s2<0)
{
break;
}
}
s1=s1-1;
if(s1<0)
{
break;
}
}
s0=s0-1;
if(s0<0)
{
break;
}
}
system("pause");
//return 0;
}
來看看結果的內容囉~
時間增加的結果:
紅框處是比較容易出錯或被忽略的地方(指在原題目的環境下)
時間減少的結果:
紅框處是比較容易出錯或被忽略的地方(指在原題目的環境下)
以上的內容希望大家覺得還可以~
沒有留言:
張貼留言