外包工

学 JAVA 学 OO

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  21 随笔 :: 0 文章 :: 0 评论 :: 0 Trackbacks

1.當程式遇到分岐的條件,需要作出不同的選擇時,可利用流程控制的功能來達成。

2.流程控制的語法有兩種:if else 與 swich case。

3.

if else

 

syntax:

 

if(條件判斷1){

     敘述1

}

else if(條件判斷2){

     敘述2

}

……

else{

     敘述

}

 

 

 

 

e.g.1:

 

//本程式可以將百分數轉換成對應的A、B、C、D、E等級

int score;

printf("請輸入你的分數:");

scanf("%d",&score);

if(score>90)

     printf("A:great!");

else if(score>80)

     printf("B:good");

else if(score==77) //注意!判斷是否相等需用"==",不可用"="

     printf("Luck no!");

else if(score>70)

     printf("C:average");

else if(score>60)

     printf("D:not so good");

else

     printf("E:WORK HARDER!");

 

 

 

 

e.g.2

 

//本程式使用巢狀(nested)的if else來判斷使用者的性別與年齡

int age;

char sex;

printf("請輸入性別(男m,女f):");

scanf("%c",&sex);; //讀入一字元,亦可用sex=getchar()

printf("請輸入年齡:");

scanf("%d",&age);

printf("您好,");

if(sex=='m')

{

     if(age>=60)

            printf("歐吉桑!");

     else

          printf("黑狗兄!");

}

else

{

     if(age>=50)

          printf("歐巴桑!");

     else

          printf("黑貓妹!");

}

                       

 

 

 

 

說明:比較符號與邏輯符號的用法請見下表

 

 

 

 

 

 

符號 意義 範例
> >= 大於 大於或等於 if(a>=1)
< <= 小於 小於或等於 if(a<10)
== != 等於 不等於 if(x==y)
&& AND(兩個條件都要成立) if(a>=1&&a<=100)
|| OR(兩個條件只要一者成立即可) if(a>=1||y<5)
! NOT(true->false,false=>true) if(!(a==b))

 

 

4.

switch case

 

syntax:

 

switch(變數){

  case 條件1: //敘述1

              break;

  case 條件2: //敘述2

              break;

  ……………

  default: //預設敘述式

}

 

 

 

 

eg:

 

//本程式可以計算兩個整數的四則運算

int x,y,z;

char op;//op(operator)為運算符號

printf("please input: op x y\n");

scanf("%c%d%d", &op, &x,&y);

switch(op){

      case '+':z=x+y;break;

      case '-':z=x-y;break;

      case '*':z=x*y;break;

      case '/':z=x/y;break;

}

printf("%d%c%d=%d\n",x,op,y,z);   

 

 

 

 

5.想想看

     1.假設公元曆法的閏年規則如下:當年份可被4整除時為閏年,但是被100整除卻不是閏年,但是若又可被400整除時,又可視為閏年。請你設計一程式,可以判斷某一年是否為閏年(leap year)(提示:整除與否可用求餘數符號%來判斷,例100%5=0,5%3=2)。

     例:

     輸入:2000  輸出:2000 is a leap year

     輸入:1997  輸出:1997 is not a leap year

    


 

     2.請設計一遊戲,可讓電腦自動猜出玩家所想的數字。假設數字為介於1到100之間的整數,而每當電腦猜一次時,玩家必需回應所猜的數字的結果。(答案比較大:輸入'g',小:輸入'l',答對:輸入'c'),直到猜對為止。

     例:假設玩家所想數字為66,

     電腦猜:50  玩家輸入: g

     電腦猜:75  玩家輸入: l

     ………………

     電腦猜:66  玩家輸入: c

    

     ps.本題需配合迴圈來實作

    


 

     3.某便利商店推出週年慶活動,若同一商品買超過一定數量時便可打折,打折的資訊請參考下表。假設顧客每次只買一種下列商品,請你寫一程式,可輸入購買商品的編號,單價及數量,並計算經折扣後的價格。

 

 

 

 

 

 

編號 商品 折扣
1~2個 3~5個 5個以上
1 御飯團 95折 9折 85折
2 陽光三明治 9折 85折 8折
3 AB優酪乳 9折 8折 7折

 

     範例輸出入:

     請輸入商品編號:1

     請輸入商品單價:20

     請輸入商品數量:3

     您好!您購買的商品價格為:54元

 

    


 

     4.電阻(register)的數值可由標示在其上的條紋(band)顏色來辨識(請參見下圖)。其規則如下:前兩個條紋為兩位數電阻值,第三個條紋顏色則代表其所乘的10次方值,第四個條紋則為誤差值(本程式可不考慮誤差值)。請你寫一程式,可將某一電阻(已知其電阻值)上的前三個條紋顏色列印出來。

 

 

 

    

 

 

 

 

 

顏色 第一、二條紋代表值 第三條紋代表值
Gold - 10^-1
Black 0 10^0=1
Brown 1 10^1
Red 2 10^2
Orange 3 10^3
Yellow 4 10^4
Green 5 10^5
Blue 6 10^6
Violet 7
Grey 8
White 9

 

     例:

     電阻值10歐姆(10*10^0),其前三個條紋顏色為Brown,Black,Black。

     電阻值220歐姆(22*10^1),其前三個條紋顏色為Red,Red,Brown。

     電阻值560000歐姆(56*10^4),其前三個條紋顏色為Green,Blue,Yellow。

     電阻值為2.4歐姆(24*10^-1),其前三個條紋顏色為Red,Yellow,Gold。

    

     範例輸出入:

     Enter register value:220

     Red Red Brown

posted on 2010-10-23 09:33 外包工 阅读(187) 评论(0)  编辑  收藏 所属分类: C语言程式设计

只有注册用户登录后才能发表评论。


网站导航: