C Primer Plus (7.12) 編程練習

来源:https://www.cnblogs.com/NoldorFromMiddleEarth/archive/2023/02/03/17087833.html
-Advertisement-
Play Games

/*C Primer Plus (7.11) 3*/ 1 #include<stdio.h> 2 int main() 3 { 4 double weight,height; 5 printf("Please enter your weight and height.\n"); 6 printf(" ...


/*C Primer Plus (7.11) 3*/

 1 #include<stdio.h>
 2 int main()
 3 {
 4     double weight,height;
 5     printf("Please enter your weight and height.\n");
 6     printf("Weight (pound):");
 7     scanf("%lf",&weight);
 8     printf("Height (inch):");
 9     scanf("%lf",&height);
10 //加入建立比較友好的人機交互
11     if (weight < 100 && height > 64)
12         if (height >= 72)
13         printf("You are very tall for your weight.\n");
14     else
15         printf("You are tall for your weight.\n");
16     else if (weight > 300 && height < 48)
17         printf("You are quite short for your weight.\n");
18     else
19         printf("Your weight is ideal.\n");
20 //減少沒有用的if判斷條件
21     return 0;
22 }
23 /*
24 輸出樣例
25 
26 Please enter your weight and height.
27 Weight (pound):99
28 Height (inch):65
29 You are tall for your weight.
30 
31 Please enter your weight and height.
32 Weight (pound):98
33 Height (inch):72
34 You are very tall for your weight.
35 
36 Please enter your weight and height.
37 Weight (pound):301
38 Height (inch):46
39 You are quite short for your weight.
40 
41 Please enter your weight and height.
42 Weight (pound):200
43 Height (inch):50
44 Your weight is ideal.
45 
46 */

/*C Primer Plus (7.11) 10*/

 1 #include<stdio.h>
 2 int main()
 3 {
 4     char ch;
 5 
 6     while ((ch=getchar()) != '#')
 7     {
 8         if (ch != '\n')
 9         {
10             printf("Step 1\n");
11             if (ch == 'b')
12                 break;
13             else if (ch !='c')
14             {
15                 if (ch != 'h')
16                     printf("Step 2\n");
17                     printf("Step 3\n");
18             }
19         }
20     }
21     printf("Done.\n");
22     return 0;
23 }
24 /*
25 輸出樣例
26 
27 q
28 Step 1
29 Step 2
30 Step 3
31 c
32 Step 1
33 h
34 Step 1
35 Step 3
36 b
37 Step 1
38 Done.
39 
40 */

/*C Primer Plus (7.12) 1*/

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int space, linebreak, others;
 5     int realothers = 0;
 6     char ch;
 7     space = linebreak = others = 0;
 8 
 9     printf("Please enter some characters (# to quit).\n");
10     while ((ch = getchar()) != '#')
11     {
12         if (ch == ' ' ? space++ : others++ && ch == '\n' ? linebreak++ : others++);
13     }
14     realothers = others / 2;
15     printf("These are the number of characters required for statistics.\n");
16     printf("Space : %d" ,space);
17     printf("\nLinebreak : %d" ,linebreak);
18     printf("\nOthers: %d" ,realothers);
19 
20     return 0;
21 }
22 /*
23 輸出樣例
24 
25 Please enter some characters (# to quit).
26 Hello,My name is Coco.
27 Hello. My name is Mike !#
28 These are the number of characters required for statistics.
29 Space : 8
30 Linebreak : 1
31 Others: 38
32 
33 */

/*C Primer Plus (7.12) 2*/

 1 #include<stdio.h>
 2 int main(void)
 3 {
 4     int i = 0;
 5     char ch;
 6 
 7     printf("Please enter some characters (# to quit):");
 8     while ((ch = getchar()) != '#')
 9     {
10         if (i++ % 8 == 0)
11         {
12             putchar('\n');                     //每輸出8個字元的信息就進行一次換行操作
13         }
14         if (ch == '\n')
15         {
16             printf("\'\\n\' -> %2d ",ch);
17         }
18         else if (ch == '\t')
19         {
20             printf("\'\\t\' -> %2d ",ch);
21         }
22         else
23         {
24             printf("\'%c\' -> %2d ",ch,ch);
25         }
26     }
27     printf("\nDone.");
28 
29     return 0;
30 }
31 /*
32 輸出樣例
33 
34 Please enter some characters (# to quit):KurokiTomoko#
35 
36 'K' -> 75 'u' -> 117 'r' -> 114 'o' -> 111 'k' -> 107 'i' -> 105 'T' -> 84 'o' -> 111
37 'm' -> 109 'o' -> 111 'k' -> 107 'o' -> 111
38 Done.
39 
40 */

/*C Primer Plus (7.12) 3*/

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int num;
 5     int even,odd;                    //偶數的個數,奇數的個數
 6     int e_sum,o_sum;
 7     double e_value,o_value;          //偶數和的平均值,奇數和的平均值
 8     even = odd = num = e_sum = o_sum = 0;
 9     e_value = o_value =0.0;
10     printf("Please enter some integer numbers.\n");
11     printf("The result your entered (0 to quit) : ");
12     while (scanf("%d",&num) == 1 && num)
13     {
14         (num % 2 == 0 ? (even++, e_sum += num) : (odd++, o_sum += num));
15         printf("Now you can enter again (0 to quit) : ");
16     }
17     printf("There are %d even numbers.\n",even);
18     if (even > 0)
19     {
20         e_value = e_sum / (double)even;
21         printf("The average of even numbers is : %.3lf\n",e_value);
22     }
23     printf("There are %d odd numbers.\n",odd);
24     if (odd > 0)
25     {
26         o_value = o_sum / (double)odd;
27         printf("The average of odd numbers is : %.3lf",o_value);
28     }
29     printf("\nDone.");
30     return 0;
31 }
32 /*
33 輸出樣例
34 
35 Please enter some integer numbers.
36 The result your entered (0 to quit) : 1
37 Now you can enter again (0 to quit) : 2
38 Now you can enter again (0 to quit) : 3
39 Now you can enter again (0 to quit) : 4
40 Now you can enter again (0 to quit) : 5
41 Now you can enter again (0 to quit) : 6
42 Now you can enter again (0 to quit) : 7
43 Now you can enter again (0 to quit) : 8
44 Now you can enter again (0 to quit) : 9
45 Now you can enter again (0 to quit) : 0
46 There are 4 even numbers.
47 The average of even numbers is : 5.000
48 There are 5 odd numbers.
49 The average of odd numbers is : 5.000
50 Done.
51 
52 */

/*C Primer Plus (7.12) 4*/

 1 #include<stdio.h>
 2 int main()
 3 {
 4     char ch;
 5     int count1 = 0;
 6     int count2 = 0;
 7     printf("Please enter the text you want (enter '#' to quit).");
 8     printf("\nNow please enter : ");
 9     while ((ch = getchar()) != '#')
10     {
11         if (ch == '.')
12         {
13             putchar('!');
14             count1++;
15         }
16         else if (ch == '!')
17         {
18             printf("!!");
19             count2++;
20         }
21         else
22         {
23             putchar(ch);
24         }
25     }
26     printf("The number of times an exclamation mark "
27            "has been replaced with a period is : %d",count1);
28     printf("\nThe number of times an exclamation mark "
29            "is replaced by two exclamations is : %d",count2);
30     printf("\nDone.");
31 
32     return 0;
33 }
34 /*
35 輸出樣例
36 
37 Please enter the text you want (enter '#' to quit).
38 Now please enter : !!!!!.....
39 !!!!!!!!!!!!!!!
40 #
41 The number of times an exclamation mark has been replaced with a period is : 5
42 The number of times an exclamation mark is replaced by two exclamations is : 5
43 Done.
44 
45 */

/*C Primer Plus (7.12) 5*/

#include<stdio.h>
int main()
{
    char ch;
    int count1 = 0;
    int count2 = 0;
    printf("Please enter the text you want (enter '#' to quit).");
    printf("\nNow please enter : ");
    while ((ch = getchar()) != '#')
    {
        switch(ch)
        {
        case '.':
            {
                putchar('!');
                count1++;
                break;
            }
        case '!':
            {
                printf("!!");
                count2++;
                break;
            }
        default:
            {
                putchar(ch);
            }
        }
    }
    printf("The number of times an exclamation mark "
           "has been replaced with a period is : %d",count1);
    printf("\nThe number of times an exclamation mark "
           "is replaced by two exclamations is : %d",count2);
    printf("\nDone.");

    return 0;
}
/*
輸出樣例

Please enter the text you want (enter '#' to quit).
Now please enter : Hello, This is Coconut !
Hello, This is Coconut !!
My name is Coconut.
My name is Coconut!
#
The number of times an exclamation mark has been replaced with a period is : 1
The number of times an exclamation mark is replaced by two exclamations is : 1
Done.

*/

/*C Primer Plus (7.12) 6*/

#include<stdio.h>
int main()
{
    int count = 0;
    char ch;
    char prev;            //讀取的前一個字元
    printf("Please enter some characters ('#' to quit):");
    prev = '#';          //前一個字元為“#”的時候會停止(用於識別結束符號)
    while ((ch = getchar()) != '#')
    {
        if(prev == 'e' && ch == 'i')
            count++;
        prev = ch;
    }
    printf("There %d ei in this sentence.",count);

    return 0;
}
/*
輸出樣例

Please enter some characters ('#' to quit):Receive your eieio award.#
There 3 ei in this sentence.

*/

/*C Primer Plus (7.12) 7*/

#include<stdio.h>
#define BASIC_SALARY 10.00
#define EXTRA_WORK 1.5
#define NORMAL_TAX 0.15
#define EXTRA_TAX 0.20
#define OTHER_TAX 0.25
int main()
{
    double worktime = 0.0;
    double salary,tax,netincome;
    salary = tax = netincome = 0.0;
    printf("Please enter your "
           "working hours in a week : ");
    while (scanf("%lf",&worktime) != 1 || worktime <= 0)
    {
        while (getchar() != '\n') continue;
        printf("Please enter a right number( >= 0 ).");
    }
    salary = worktime > 40 ? (40.00 * BASIC_SALARY) + (1.5 * (worktime - 40)) * BASIC_SALARY : worktime * BASIC_SALARY;
    if (salary <= 300)
    {
        tax = 300.00 * NORMAL_TAX;
        netincome = salary - tax;
    }
    else if (salary <= 450)
    {
        tax = 300.00 * NORMAL_TAX + (salary - 300.00) * EXTRA_TAX;
        netincome = salary - tax;
    }
    else
    {
        tax = 300.00 * NORMAL_TAX + 150.00 * EXTRA_TAX + (salary - 450.00) * OTHER_TAX;
        netincome = salary - tax;
    }
    printf("There is your salary, tax and net income information.\n");
    printf("Salary : %.3lf",salary);
    printf("\nTax : %.3lf",tax);
    printf("\nNet income : %.3lf",netincome);

    return 0;
}
/*
輸出樣例

Please enter your working hours in a week : 300
There is your salary, tax and net income information.
Salary : 4300.000
Tax : 1037.500
Net income : 3262.500

Please enter your working hours in a week : 450
There is your salary, tax and net income information.
Salary : 6550.000
Tax : 1600.000
Net income : 4950.000

Please enter your working hours in a week : 521.73
There is your salary, tax and net income information.
Salary : 7625.950
Tax : 1868.988
Net income : 5756.963
*/

/*C Primer Plus (7.12) 8*/

#include<stdio.h>
#include<stdbool.h>
#define EXTRA_WORK 1.5
#define NORMAL_TAX 0.15
#define EXTRA_TAX 0.20
#define OTHER_TAX 0.25
void quit ();
void menu ();
void Salary (double Bsalary , double worktime);

int choice = 0;
double worktime = 0.0;

int main()
{
    while (true)
    {
         menu ();

         switch(choice)
     {
        case 1 :
           {
               Salary(8.75,worktime);
               break;
           }
        case 2 :
           {
               Salary(9.33,worktime);
               break;
           }
        case 3 :
           {
               Salary(10.00,worktime);
               break;
           }
        case 4 :
           {
               Salary(11.20,worktime);
               break;
           }
        case 5 :
           {
               quit();
               printf("Done.");
               return 0;
           }
     }
    }
}

void quit()
{
    printf("\t\t\n************************************************\t\t\n");
    printf("||                                            ||");
    printf("\n||                                            ||");
    printf("\n||      Thank you to use this programme!      ||");
    printf("\n||                                            ||");
    printf("\n||                                            ||");
    printf("\t\t\n************************************************\t\t\n");
}

void menu()
{
    printf("\t\t\n*****************************************************************\t\t\n");
    printf("Enter the number corresponding to the desired pay rate or action:\n");
    printf("1) $8.75/hr                          2) $9.33/hr");
    printf("\n3) $10.00/hr                         4) $11.20/hr\n");
    printf("5) quit");
    printf("\t\t\n*****************************************************************\t\t\n");
    printf("Please enter your options: ");
    scanf("%d",&choice);
    while (choice != 1 && choice != 2 && choice != 3 && choice != 4 && choice != 5)
    {
        printf("Please enter the right choice:");
        scanf("%d",&choice);
    }
}

void Salary(double Bsalary , double worktime)
{
  double tax,netincome,salary;
  salary = tax = netincome = 0.0;
  printf("Please enter your working hours in a week : ");

    while (scanf("%lf",&worktime) != 1 || worktime <= 0)
    {
        while (getchar() != '\n') continue;
        printf("Please enter a right number( >= 0 ).	   

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1:apk文件結構 如圖所示: assets: 存放應用程式的靜態資源文件,如圖片資源,json配置文件,html離線資源等。註意,assets目錄下是支持任意深度的子目錄。 res: 規定的指定文件,圖標,圖片資源等,且res下文件都會生成對應的資源id, 但是assets下是不會的。 lib: ...
  • 在元素設置浮動(float)後,該元素就會脫離文檔流,並且向左或向右浮動,直至它的外邊緣遇到包含框或者另一個浮動框的邊緣。 一、浮動元素對佈局的影響 1.1、浮動元素造成父元素的高度塌陷: 原來的父元素高度是內部元素撐開的,但是當內部元素浮動後,脫離文檔流浮動起來,那父元素的高度就坍塌,變為高度 0 ...
  • 寫代碼的時候遇到這個問題了,在這裡複習一下 非箭頭函數 非箭頭函數的this指向比較好理解,就是調用這個函數的對象,舉個慄子: var obj = { foo: { bar: 3, foo:{ bar: 4, foo: function a() { console.log(this.bar) }, ...
  • 這裡給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 什麼是跨域? 跨域不是問題,是一種安全機制。瀏覽器有一種策略名為同源策略,同源策略規定了部分請求不能被瀏覽器所接受。 值得一提的是:同源策略導致的跨域是瀏覽器單方面拒絕響應數據,伺服器端是處理完畢並做出了響應的。 什麼是同源策略 一個ur ...
  • 1.CSS、SCSS、Sass CSS是開發人員熟知的一種用於頁面樣式開發的語言,可以通過內容的分離控制減少代碼的重覆性,降低代碼的複雜程度。 Sass與 SCSS 都是 CSS 預處理器,可包含在基於 CSS 的 UI(用戶界面)或前端框架中以簡化開發。Sass 與 SCSS 框架在高級別的 CS ...
  • 通常,不同的公司里有著不同的編碼規範,主要是從代碼得準確性、穩定性、可讀性等地方著手制定,以提高團隊成員之間的協作效率,這裡主要是列出一些常見的編碼規範。 ...
  • 隨著移動互聯網發展,手機端購物已成為人們生活的常態。人們在搜索商品時採用的手段也越來越豐富,當前的主要搜索方式是文本搜索與拍照搜索。 ...
  • 1 簡介 之前在文章《dapr入門與本地托管模式嘗試》中介紹了dapr和本地托管,本文我們來介紹如果在代碼中使用dapr的服務調用功能,並把它整合到Spring Boot中。 Dapr服務調用的邏輯如下: 本次實驗會創建兩個服務: pkslow-data,提供數據服務,用於返回數據; pkslow- ...
一周排行
    -Advertisement-
    Play Games
  • 在C#中使用SQL Server實現事務的ACID(原子性、一致性、隔離性、持久性)屬性和使用資料庫鎖(悲觀鎖和樂觀鎖)時,你可以通過ADO.NET的SqlConnection和SqlTransaction類來實現。下麵是一些示例和概念說明。 實現ACID事務 ACID屬性是事務處理的四個基本特征, ...
  • 我們在《SqlSugar開發框架》中,Winform界面開發部分往往也用到了自定義的用戶控制項,對應一些特殊的界面或者常用到的一些局部界面內容,我們可以使用自定義的用戶控制項來提高界面的統一性,同時也增強了使用的便利性。如我們Winform界面中用到的分頁控制項、附件顯示內容、以及一些公司、部門、菜單的下... ...
  • 在本篇教程中,我們學習瞭如何在 Taurus.MVC WebMVC 中進行數據綁定操作。我們還學習瞭如何使用 ${屬性名稱} CMS 語法來綁定頁面上的元素與 Model 中的屬性。通過這些步驟,我們成功實現了一個簡單的數據綁定示例。 ...
  • 是在MVVM中用來傳遞消息的一種方式。它是在MVVMLight框架中提供的一個實現了IMessenger介面的類,可以用來在ViewModel之間、ViewModel和View之間傳遞消息。 Send 接受一個泛型參數,表示要發送的消息內容。 Register 方法用於註冊某個對象接收消息。 pub ...
  • 概述:在WPF中,通過EventHandler可實現基礎和高級的UI更新方式。基礎用法涉及在類中定義事件,併在UI中訂閱以執行更新操作。高級用法藉助Dispatcher類,確保在非UI線程上執行操作後,通過UI線程更新界面。這兩種方法提供了靈活而可靠的UI更新機制。 在WPF(Windows Pre ...
  • 概述:本文介紹了在C#程式開發中如何利用自定義擴展方法測量代碼執行時間。通過使用簡單的Action委托,開發者可以輕鬆獲取代碼塊的執行時間,幫助優化性能、驗證演算法效率以及監控系統性能。這種通用方法提供了一種便捷而有效的方式,有助於提高開發效率和代碼質量。 在軟體開發中,瞭解代碼執行時間是優化程式性能 ...
  • 概述:Cron表達式是一種強大的定時任務調度工具,通過配置不同欄位實現靈活的時間規定。在.NET中,Quartz庫提供了簡便的方式配置Cron表達式,實現精準的定時任務調度。這種靈活性和可擴展性使得開發者能夠根據需求輕鬆地制定和管理定時任務,例如每天備份系統日誌或其他重要操作。 Cron表達式詳解 ...
  • 概述:.NET提供多種定時器,如System.Windows.Forms.Timer適用於UI,System.Web.UI.Timer用於Web,System.Diagnostics.Timer用於性能監控,System.Threading.Timer和System.Timers.Timer用於一般 ...
  • 問題背景 有同事聯繫我說,在生產環境上,訪問不了我負責的common服務,然後我去檢查common服務的health endpoint, 沒問題,然後我問了下異常,timeout導致的System.OperationCanceledException。那大概率是客戶端的問題,會不會是埠耗盡,用ne ...
  • 前言: 在本篇 Taurus.MVC WebMVC 入門開發教程的第四篇文章中, 我們將學習如何實現數據列表的綁定,通過使用 List<Model> 來展示多個數據項。 我們將繼續使用 Taurus.Mvc 命名空間,同時探討如何在視圖中綁定並顯示一個 Model 列表。 步驟1:創建 Model ...