[ C++ ] 程設演練題目 01

內容為大一資工程式設計C++所練習題目之紀錄
因為貼程式碼的# include<iostream> 等等 會被吃掉請自行補上
此外由於是作者大一時的實作作業,程式寫法不足嫻熟,請見諒

點我看 C++ 大一程式設計練習題目總覽

1. 請撰寫一程式 ,輸入三個整數,判斷是否能構成一三角形。

/*第一題 請撰寫一程式 ,輸入三個整數,判斷是否能構成一三角形*/
using namespace std;
int main(int argc, char** argv) {

	int num1,num2,num3;

	cin >>num1>>num2>>num3;

	if((num1+num2>num3)&&(num2+num3>num1)&&(num3+num1>num2))
	{
		cout<<"可以構成三角形";
	}
	else
	{
		cout<<"不能構成三角形";
	}

	return 0;
}

2.

第二題

/*第二題 */
using namespace std;
int main(int argc, char** argv) {

	 int num1,num2;

	 cin>>num1>>num2;

	 if(num1%num2==0)
	 {
	 	cout<<num1<<"is a multiple of "<<num2<<endl;

	 }
	 else
	 {
	 	cout<<num1<<"is not a multiple of "<<num2<<endl;
	 }



	return 0;
}

3.第3題

/*第三題 */
using namespace std;
int main(int argc, char** argv) {

int i,n;


cout<<"integer square  cuben" ;
for(i=0;i<=10;i++)
{
	cout<<i<<"t"<<i*i<<"t"<<i*i*i<<"n"<<endl;
}


	return 0;
}

4.請撰寫一程式,輸入 1-12 的數 字,程式將印出對應月份日的數字,

程式將印出對應月份日(假設 2月份為 28 日),若輸入數 若輸入數 字不為 1-12 請提示錯誤。

/*第四題 */
using namespace std;
int main(int argc, char** argv) {

int m;

cout <<"請輸入1-12數字: ";
cin>>m;

if (m==1)
{
	cout<<"31";
}
else if(m==2)
{
	cout<<"28";
}
else if(m==3)
{
	cout<<"31";
}
else if(m==4)
{
	cout<<"30";
}
else if(m==5)
{
	cout<<"31";
}
else if(m==6)
{
	cout<<"30";
}
else if(m==7)
{
cout<<"31";
}
else if(m==8)
{
cout<<"31";
}
else if(m==9)
{
cout<<"30";
}
else if(m==10)
{
cout<<"31";
}
else if(m==11)
{
cout<<"30";
}
else if(m==12)
{
cout<<"31";
}
else
{
	cout<<"您輸入的不為1-12";
}

	return 0;
}

5.一件衣服 95 元,若消費滿 300 元,可打八五折。輸入購買衣服件數出需要支付的金額(單 位:元),保留兩小數。

/*第五題 需要iomanip */
using namespace std;
int main(int argc, char** argv) {

int n;
cout<<"請輸入購買件數";
cin>>n;

if(n>0&&n<=3)
{
	cout<<fixed<<setprecision(2)<<95*n;
}
else if(n>3)
{

	cout<<fixed<<setprecision(2)<<(95*n*0.85);
}
	return 0;
}

6. 輸入一個浮點數,出它的絕對值保留兩位小數。

/*第六題 需要iomanip  */
using namespace std;
int main(int argc, char** argv) {

float n;
cin>>n;
if(n<0)
{
cout<<fixed<<setprecision(2)<<-(n)<<endl;
}
else
{
cout<<fixed<<setprecision(2)<<n<<endl;
}
	return 0;
}

7. 輸入三角形邊長度值(均為正整數),判斷它是否能為直角三角形邊長。如果可以,則輸出「 yes」,如果不能則輸出「 no 」。如果根本無法構成三角形,則輸出「 not a triangle」

/*第七題 */
using namespace std;
int main(int argc, char** argv)
 {


	int a[3];
	int i,j,tmp;



	cout <<"請輸入三數判斷是否為直角三角形";
	for(i=0;i<=2;i++)
	{
	cin>>a[i];
	}

	for(i=1;i>=0;i--)
	{
	    for(j=0;j<=i;j++)
	    {

	        if(a[j]>a[j+1])
	        {
	            tmp=a[j+1];
	            a[j+1]=a[j];
	            a[j]=tmp;
	        }

	    }

	}


	if(a[0]+a[1]>a[2]&&a[1]+a[2]>a[0]&&a[2]+a[0]>a[1])

	{

		if((a[0]*a[0])+(a[1]*a[1]) ==(a[2]*a[2]))
		{
		    cout <<" yes";

		}
		else
		{
		    cout <<"no";
		}

	}
	else
	{
		cout<<"not a triangle";

	}
}

 

8.輸入年份,判斷是否為閏年。如果是,則輸出「yes」,否則輸出「no」.提示:簡單地判斷除以4個餘數是不夠的

/*第八題 */
using namespace std;
int main(int argc, char** argv)
 {
     int n;
     cout<<"請輸入年: "
	 cin>>n;

     if(n%400==0||(n%4==0&&n%100!=0))
     {
     	cout<<"yes";
     }
     else
     {
     	cout<<"no";
     }

	return 0;
}

第八題我是照WIKI的規定算的,不過聽學長說WIKI有錯好像錯在演算法(?)

不過我自己寫出來竟然跟他演算法超像(面壁)

以下是資訊:

  1. 西元年份除以400可整除,為閏年。
  2. 西元年份除以4可整除但除以100不可整除,為閏年。
  3. 西元年份除以4不可整除,為平年。
  4. 西元年份除以100可整除但除以400不可整除,為平年

不過...我發現幾乎都是|| &&的應用

今天就卡在這題(8)跟10轉2進位 Orz 

那麼下禮拜再會

可能有人會說為什沒有(1) 理由一 .. 我備份錯檔案了 理由二.. (1)只有那題2進位很難