2014年3月15日 星期六

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

==============================================
/* 程式檔名:test_7-51-1.c */
/* 程式目的:呼叫函數印出文字*/
/* 程式設計:蘇彥儒*/
/* 完成日期:20140312*/
#include <stdio.h>
void printresult(void);
int main(void)
{
    printresult();
    system("pause");
    return 0;
}
void printresult(void)
{
    printf("HELLO C WORLD\n");          
}
==============================================
/* 程式檔名:test_7-51-2.c */
/* 程式目的:呼叫函數印出文字*/
/* 程式設計:蘇彥儒*/
/* 完成日期:20140312*/
#include <stdio.h>
void printresult(int);
int main(void)
{  
    int num;
    printf("請輸入指定行數:\n");
    scanf("%d",&num);
    printresult(num);
    system("pause");
    return 0;
}
void printresult(int num)
{
     int i;
     for(i=0;i<num;i++)
     {
      printf("HELLO C WORLD\n");            
     }
}
==============================================
/* 程式檔名:test_7-51-3.c */
/* 程式目的:呼叫函式比較大小*/
/* 程式設計:蘇彥儒*/
/* 完成日期:20140312*/
#include <stdio.h>
int printresult(int,int);
int main(void)
{  
    int fir,sec;
    printf("請輸入兩個數字:\n");
    scanf("%d %d",&fir,&sec);
    printf("最大值:%d\n",printresult(fir,sec));
    system("pause");
    return 0;
}
int printresult(int x,int y)
{
     if (x>y)
         return x;
     else
         return y;
}
==============================================
/* 程式檔名:test_7-51-4.c */
/* 程式目的:計算1~100中是7的倍數*/
/* 程式設計:蘇彥儒*/
/* 完成日期:20130821*/
#include <stdio.h>
int funa(int);
int main(void)
{
    int i;
    for(i=1;i<=100;i++)
    {
                       
       funa(i);                                                                              
    }
    system("pause");
    return 0;
    
}
int funa(int i)
{
     if(i%7==0)
        {                        
            printf("%d \n",i);       
        }     
}
==============================================
/* 程式檔名:test_7-51-5.c */
/* 程式目的:印出數學函式*/
/* 程式設計:蘇彥儒*/
/* 完成日期:20130821*/
#include <stdio.h>
float printfruselt(float);

int main(void)
{
    float x;
    printf("請輸入x:");
    scanf("%f",&x);
    printf("f(x)=x^3+2x^2+1=%.2f",printfruselt(x));
    system("pause");
    return 0;    
}

float printfruselt(float x)
{
    float result;
    result=(x*x*x)+(2*(x*x))+1;
    return result;
}
==============================================
/* 程式檔名:test_7-51-6.c */
/* 程式目的:印出數學函式*/
/* 程式設計:蘇彥儒*/
/* 完成日期:20130821*/
#include <stdio.h>
float printfruselt(float,float);

int main(void)
{
    float x,y;
    printf("請輸入f(x,y):");
    scanf("%f %f",&x,&y);
    printf("f(x)=x^2*y+2x*y+x*y^2=%.2f",printfruselt(x,y));
    system("pause");
    return 0;    
}

float printfruselt(float x,float y)
{
    float result;
    result=(x*x)*y+2*x*y+x*(y*y);
    return result;
}
==============================================
/* 程式檔名:ex_7-52-7.c */
/* 程式目的:遞回函式1+2+3+...+100*/
/* 程式設計:蘇彥儒*/
/* 完成日期:20140312*/
#include <stdio.h>
void hanoi(int,int);
int main(void)
{  
    int i; 
    hanoi(0,0);
    system("pause");
    return 0;
}
void hanoi(int i,int sum)
{    
     if(i==100)  
     {    
         printf("\b"); 
         printf("=%d\n",sum);                                             
     }
     else
     {          
         i++;
         printf("%d+",i);  
         sum=sum+i;
         hanoi(i,sum);         
     }
}
==============================================
/* 程式檔名:test_7-52-8.c */
/* 程式目的:遞回函式求出最大質因數*/
/* 程式設計:蘇彥儒*/
/* 完成日期:20140313*/
#include <stdio.h>
#include <stdio.h>
void factor(long,long);
int main(void)
{  
    long number,div;
    printf("請輸入一個欲作因數分解的數字:\n");
    scanf("%d",&number);
    printf("輸入:%d\n",number);
    if(number==1)
        printf("輸入錯誤");
    else 
        factor(number,2);
    system("pause");
    return 0;
}
void factor(long num,long div)
{
     if(num==1 || div>num)                
     {
         printf("\b");
         printf("最大值:%d",div);       
         return;
     }
     else
     {
         if(num%div==0)                      
         {
             printf("%d*",div);                         
             factor(num/div,div);          
         }
         else
         {
             div=(div==2?3:div+2);
             factor(num,div);
         }
     }

}
==============================================
/* 程式檔名:test_7-52-9.c */
/* 程式目的:遞回函式求出最大公因數*/
/* 程式設計:蘇彥儒*/
/* 完成日期:20140313*/
#include <stdio.h>
#include <stdio.h>
void factor(int,int,int);
int main(void)
{  
    int fir,sec;
    printf("請輸入兩個數字:\n");
    scanf("%d %d",&fir,&sec);
    if(fir!=0 && sec!=0)  
        factor(fir,sec,fir%sec);
    else
        printf("錯誤");
    system("pause");
    return 0;
}

void factor(int a,int b,int c)
{
    if(c!=0)    
    {            
        a=b;
        b=c;
        factor(a,b,a%b);                    
    }
    else      
    printf("最大公因數%d\n",b);  
     
}
==============================================
/* 程式檔名:test_7-52-10.c */
/* 程式目的:換零錢機器*/
/* 程式設計:蘇彥儒*/
/* 完成日期:20140316*/
#include <stdio.h>
#include <stdio.h>
int allmoney(int,int);
void chanmoney(int);
int main(void)
{  
    int money,num,chmoney,chnum;
    int sum,chsum;
    printf("換零錢機器\n");
    printf("只接受100,200,500,1000元\n");
    printf("輸入要換的紙鈔 1.100, 2.200, 3.500, 4.1000元\n");
    scanf("%d",&money);    
    
    if (money>4 || money<1)
        printf("輸入紙鈔錯誤\n");       
    else 
    { 
        printf("輸入張數:\n");
        scanf("%d",&num);   
        sum=allmoney(money,num);
        printf("總金額:%d\n",sum);
        chanmoney(sum);
    } 
    system("pause");
    return 0;
}

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

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

沒有留言:

張貼留言