2014年11月16日 星期日

(綠色皮) 最新C++程式語言, 施威銘研究室 著, 旗標 第六章 變數 '參考' 答案

==============================================
/* 程式檔名:Test_C6-44-1.cpp */
/* 程式目的:可印出指定行數的"HELLO C++" 訊息*/
/* 程式設計:蘇彥儒*/
/* 完成日期:20141113 */
   
#include<iostream>
using namespace std;   
void alle(int x)
{
     for(int i=0;i<x;i++)
     {
      cout << "HELLO C++" << endl;    
     }          
     
}

int main()
{
     int usernumber;
     cout << "請輸入行數: " ;
     cin >> usernumber;
     alle(usernumber);
     system("PAUSE");
     return 0;    

}

==============================================
/* 程式檔名:Test_C6-44-2.cpp */
/* 程式目的:在main()輸入兩個數字從函式比大小 傳回main顯示*/
/* 程式設計:蘇彥儒*/
/* 完成日期:20141113 */
   
#include<iostream>
using namespace std;   


float bigger(float x,float y)
{
     if(x>y)
      return x;
     else
      return y;     
}

int main()
{
     float a,b;
     cout << "請輸入第一個數字:";
     cin >> a;
     cout << "請輸入第二個數字:";
     cin >> b;
     cout << "較大的值為:" << bigger(a,b) << endl;
     
     system("PAUSE");
     return 0;    

}

==============================================
/* 程式檔名:Test_C6-44-3.cpp */
/* 程式目的:遞迴函數計算1+2+3+...+100*/
/* 程式設計:蘇彥儒*/
/* 完成日期:20141113 */
   
#include<iostream>
using namespace std;   


long double dqa(int x)
{
    if (x==0)
        return 1;
    else
        return x*dqa(x-1);      
}

int main()
{
     cout << "1+2+3+...+100="<< dqa(100) << endl;
     system("PAUSE");
     return 0;    

}

==============================================
/* 程式檔名:Test_C6-44-4.cpp */
/* 程式目的:計算1/1+1/2+1/3+...+1/n*/
/* 程式設計:蘇彥儒*/
/* 完成日期:20141113 */
   
#include<iostream>
using namespace std;   


long double dqa(int x)
{
    if (x==0)
        return 1;
    else
        return 1.0/x+dqa(x-1);      
}

int main()
{
     int addnum;
     cout << "請輸入一個整數:";
     cin >> addnum;
     cout << "1/1+1/2+1/3+...+1/n=" << dqa(addnum)-1 << endl;
     system("PAUSE");
     return 0;    

}

==============================================
/* 程式檔名:Test_C6-44-5.cpp */
/* 程式目的:計算1+2+3+...n*/
/* 程式設計:蘇彥儒*/
/* 完成日期:20141113 */
   
#include<iostream>
using namespace std;   

long double dqa(int x)
{
    if (x==0)
        return 1;
    else
        return x+dqa(x-1);      
}

int main()
{
     int addnum;
     cout << "請輸入一個整數:";
     cin >> addnum;
     cout << "1+2+3+...n=" << dqa(addnum)-1 << endl;
     system("PAUSE");
     return 0;    

}

==============================================
/* 程式檔名:Test_C6-44-6.cpp */
/* 程式目的:計算1到指定參數n之間所有可以被13整除的數值*/
/* 程式設計:蘇彥儒*/
/* 完成日期:20141114 */
   
#include<iostream>
using namespace std;   


int main()
{
     int addnum;
cout << "計算1到指定參數n之間所有可以被13整除的數值\n";
     cout << "請輸入一個整數:";
     cin >> addnum;
     for(int i=1;i<addnum;i++)
{
if(i%13==0)
{
cout << i << " ";
}
 
}
     system("PAUSE");
     return 0;    

}

==============================================
/* 程式檔名:Test_C6-44-7.cpp */
/* 程式目的:模擬 pow 行為的函式已遞迴方式計算任意數的任意數次方*/
/* 程式設計:蘇彥儒*/
/* 完成日期:20141114 */
   
#include<iostream>
#include<ctime> 
using namespace std;   

int poww(int x,int y)
{
     static int sum=0;
     if(y==0)
      return 1;
     else
      return (x*poww(x,y-1));
}

int main()
{
     int number,powe;
     cout << "請輸入一個數字:";
     cin >> number;
     cout << "請輸入一個次方:";
     cin >> powe;
     if(number==0 && powe==0)
     {
         cout << "無解\n";     
     }
     else
     {
         clock_t starttime=clock();
         cout << number << " 的 " << powe << " 次方等於:" << poww(number,powe) << endl; 
         clock_t endtime=clock(); 
         cout << (double)(endtime-starttime)/CLK_TCK << " 秒\n";   
     }
     
     system("PAUSE");
     return 0;    

}

==============================================
/* 程式檔名:Test_C6-44-8.cpp */
/* 程式目的:請設計一多載函式*/
/* 程式設計:蘇彥儒*/
/* 完成日期:20141114 */
   
#include<iostream> 
using namespace std; 

void volume (char x,char y)
{
     cout << "兩個參數都是字元\n"
          << "第一個字元:" << x
          << "第二個字元:" << y << endl;     
}

void volume (int x,char y)
{
     cout << "兩個參數一個字元一個數字\n";
     for(int i=0;i<x;i++)
     {
      cout << y;        
     }  
     cout << endl;   
}

void volume (int x,int y)
{
     cout << "兩個參數都是數字\n"
          << "兩數相乘:" << x*y << endl;
}

int main()
{
     volume('a','b');
     volume(5,'b');
     volume(5,6);
     system("PAUSE");
     return 0;    

}

==============================================
/* 程式檔名:Test_C6-44-9.cpp */
/* 程式目的:求最大公因數的函式*/
/* 程式設計:蘇彥儒*/
/* 完成日期:20141114 */
   
#include<iostream> 
using namespace std; 
void eco(int x,int y)
{
    int a,b,c;
    c=x%y;
    b=y;
    while(c!=0)
    { 
     a=b;
     b=c;
     c=a%b;      
    }
    cout << x << "與" << y <<"的最大公因數:" << b << endl;     
}

int main()
{
     int a,b;
     cout << "求兩數的最大公因數\n";
     cout << "請輸入第一個數字:";
     cin >> a;
     cout << "請輸入第二個數字:";
     cin >> b;
     eco(a,b); 
     system("PAUSE");
     return 0;    

}

==============================================
/* 程式檔名:Test_C6-44-10.cpp */
/* 程式目的:換零錢機器*/
/* 程式設計:蘇彥儒*/
/* 完成日期:20141114 */

#include<iostream> 
using namespace std; 

int allmoney(int,int);
void chanmoney(int);

int main()
{
     int money,num,chmoney,chnum;
     int sum,chsum;
     cout << "換零錢機器\n"
          << "只接受100,200,500,1000元\n"
          << "輸入要換的紙鈔 1.100, 2.200, 3.500, 4.1000元\n";
     cin >> money;    
    
     if (money>4 || money<1)
        cout << "輸入紙鈔錯誤\n";       
     else 
     { 
        cout << "輸入張數:\n";
        cin >> num;   
        sum=allmoney(money,num);
        cout << "總金額:" << sum;
        chanmoney(sum);
     } 
     system("PAUSE");
     return 0;    
}

int allmoney(int money,int num)
{
        switch(money)
        {
            case 1:
                   {
                   cout << num << " 張100元";
                   return(num*100);
                   break;
                   }                
            case 2:
                   {
                   cout << num << " 張200元";
                   return(num*200);
                   break;  
                   }
            case 3:
                   {
                   cout << num << " 張500元";
                   return(num*500); 
                   break;
                   }  
            case 4:
                   {
                   cout << num << " 張1000元";
                   return(num*1000); 
                   break;
                   }                    
        }
     
}

void chanmoney(int sum)
{     
    int allchsum,chmoney,chnum;   
    int fiveten=0,ten=0,five=0,one=0;
    cout << "選擇零錢面額(1.一元、2.五元、3.十元、4.五十元):\n";
    cin >> chmoney;
    if (chmoney>4 || chmoney<1)
        cout << "輸入零錢面額錯誤\n";       
    else 
    {                
        cout << "輸入個數:\n";
        cin >> chnum; 
        switch(chmoney)
        {
                case 1:
                       {
                       one=chnum;             
                       break;
                       }
                case 2:
                       {
                       five=chnum*5;             
                       break;
                       }    
                case 3:
                       {
                       ten=chnum*10;               
                       break;
                       }        
                case 4:
                       {
                       fiveten=chnum*50;              
                       break;                          
                       } 
        }
        if(one>sum || five>sum || ten>sum || fiveten>sum)
            cout << "超過投入金額\n";
        else 
        {
            switch(chmoney)
            {
                case 1:
                       {
                       cout << "兌換 " << chnum << "個1元\n";
                       allchsum=chnum;             
                       break;
                       }
                case 2:
                       {
                       cout << "兌換 " << chnum << "個5元\n";
                       allchsum=chnum*5;               
                       break;
                       }
                case 3:
                       {
                       cout << "兌換 " << chnum << "個10元\n";
                       allchsum=chnum*10;               
                       break;
                       }
                case 4:
                       {
                       cout << "兌換 " << chnum << "個50元\n";
                       allchsum=chnum*50;               
                       break; 
                       }                          
            }
            sum=sum-allchsum;
            cout << "剩下金額 "<< sum << "找出零錢\n";
            fiveten=(sum-sum%50);
            ten=((sum-fiveten)-(sum-fiveten)%10);
            five=((sum-fiveten-ten)-(sum-ten)%5);
            one=((sum-ten)%5);
            cout << "五十元:" << fiveten/50;
            cout << "十元:" << ten/10;
            cout << "五元:" << five/5;
            cout << "一元:" << one; 
            cout << endl;
        }
    }                

}

==============================================

沒有留言:

張貼留言