1. 程式人生 > 實用技巧 >Vue2.6插槽v-slot是如何使用的

Vue2.6插槽v-slot是如何使用的

C語言部落格作業03--函式](https://www.cnblogs.com/linli069/p/9837435.html)

這個作業屬於哪個班級 C語言--網路2011/2012
這個作業的地址 C部落格作業03--函式
這個作業的目標 學習如何設計函式、C語言基本資料型別
姓名 陳垚嘉

0.展示PTA總分(0----2)

1.本章學習總結(4分)

1.1 函式定義、呼叫、宣告

int function( int x, int y );//函式宣告
int main()
{m=function(j);}//函式呼叫
int function( int x, int y )//函式定義,其中函式中的變數與主函式無關,需從新定義
{
...
return a;//返回a的值給function,若函式頭為void則不用寫return
}

1.2 全域性、區域性變數、靜態區域性變數

全域性變數 定義在函式外面的變數,就叫全域性變數。
普通的區域性變數定義的時候直接定義或者在前面加上auto

void func1()
{
 int i = 1;
 
 i++;
 
 printf("i = %d.\n", i);
}

靜態區域性變數(static) 靜態區域性變數定義時前面加static關鍵字。
1、靜態區域性變數和普通區域性變數不同。靜態區域性變數也是定義在函式內部的,靜態區域性變數定義時前面要加static關鍵字來標識,靜態區域性變數所在的函式在多呼叫多次時,只有第一次才經歷變數定義和初始化,以後多次在呼叫時不再定義和初始化,而是維持之前上一次呼叫時執行後這個變數的值。本次接著來使用。

2、靜態區域性變數在第一次函式被呼叫時創造並初始化,但在函式退出時它不死亡,而是保持其值等待函式下一次被呼叫。下次呼叫時不再重新創造和初始化該變數,而是直接用上一次留下的值為基礎來進行操作。

3、靜態區域性變數的這種特性,和全域性變數非常類似。它們的相同點是都創造和初始化一次,以後呼叫時值保持上次的不變。不同點在於作用域不同

1.3 C資料型別及注意點

運用浮點型字元進行相除時,由於可能會出現誤差,所以可以+0.0000001保證資料準確性

1.4 C運算子

1. 賦值運算子

= ,+= ,-= ,*= ,/= ,%=

2. 算術運算子

/ ,- ,+ ,* ,% ,++ ,--

3. 關係運算符

== ,< ,> ,<= ,>= ,!=
其中==,不要少寫一個=!!!

4. 邏輯運算子

&&——同時 ,||——或 ,!——非

5. 三元運算子

int max=a>b?a:b;//如果a>b成立就讓max=a,否則max=b;

學習體會

多寫就多會,少寫空流淚

2.綜合作業(6分):小學生口算表示式自動生成系統

2.2.函式功能及全域性變數介紹

2.2.1.全域性變數

2.2.2 選單相關函式

初始選單

void OperateMenu()//遊戲操作介面

{

    char option;
    int i;
    int temp;
    system("cls");//清屏
    do
    {
        system("cls");

        printf("******************************************\n");

        printf("1.一年級口算\n");

        printf("2.二年級口算\n");

        printf("3.三年級口算\n");

        printf("4.退出系統\n");

        printf("******************************************\n");

        printf("請輸入您的選擇:");

        scanf("%c", &option);

        switch (option)
        {

        case '1':

            system("cls");

            GradeOneMenu();

            //GradeOneMenu();

            break;

        case '2':
            system("cls");
            GradeTwoMenu();

            break;

        case '3':
            system("cls");
            GradeThreeMenu();
            break;

        case '4':

            printf("\n謝謝您的參與!\n");

            Sleep(500);

            exit(0);

        default:

            printf("您輸入不對,只能輸入1,2,3,4,請重輸!\n");

            Sleep(500);

        }

    } while (!(option >= '1' && option <= '4'));

}

一年級選單

 system("cls");
        printf("*********************一年級小朋友好!********************************\n");
        printf("系統將隨機生成一個口算式,如果您會做,則輸入y,輸入結果。\n");
        printf("**如果您不想做,輸入n退回主選單。\n");
        printf("***************************************************************\n");

        /*1.生成運算元函式*/
        /*2.生成隨機運算子函式*/
        /*3.根據年級判斷生成的表示式是否合理的函式(選做)*/
        /*4.生成表示式函式,並輸出展示*/

        printf("是否繼續答題y/n:");
        char ch;
        int a, b, c, d, g, i = 0, t = 0, s;
        scanf("\n%c", &ch);
        if (ch == 'n')
        {
            Sleep(500);
            OperateMenu();
            return;
        }

二年級選單

system("cls");
        printf("*********************二年級小朋友好!********************************\n");
        printf("系統將隨機生成一個口算式,如果您會做,則輸入y,輸入結果。\n");
        printf("**如果您不想做,輸入n退回主選單。\n");
        printf("***************************************************************\n");

        /*1.生成運算元函式*/
        /*2.生成隨機運算子函式*/
        /*3.根據年級判斷生成的表示式是否合理的函式(選做)*/
        /*4.生成表示式函式,並輸出展示*/

        printf("是否繼續答題y/n:");
        char ch;
        int a, b, c, d, g, t = 0, s, i;//自左到又分別是數字1,數字2,運算子,加法減法乘法的結果,題目數量,答對的題數,是否繼續的判斷,當前的題數,除法的答案
        float f;
        scanf("\n%c", &ch);
        if (ch == 'n')
        {
            Sleep(500);
            OperateMenu();
            return;
        }

三年級選單

system("cls");
        printf("*********************三年級小朋友好!********************************\n");
        printf("系統將隨機生成一個口算式,如果您會做,則輸入y,輸入結果。\n");
        printf("**如果您不想做,輸入n退回主選單。\n");
        printf("***************************************************************\n");

        /*1.生成運算元函式*/
        /*2.生成隨機運算子函式*/
        /*3.根據年級判斷生成的表示式是否合理的函式(選做)*/
        /*4.生成表示式函式,並輸出展示*/

        printf("是否繼續答題y/n:");
        char ch;
        int a, b, c, d, g, t = 0, s, i;
        float f;
        scanf("\n%c", &ch);
        if (ch == 'n')
        {
            Sleep(500);
            OperateMenu();
            return;
        }

2.2.2 出題相關函式

數字的隨機————先選擇要答的題數,然後在相關範圍隨機數字一(a)的值,然後將數字二的值隨機為數字一加一(a+1)來避免b會大於a以此避免a-b<0的情況,令b為0時b重新隨機避免b為0的情況
運算子的隨機————隨機一個數(c)為0到3的數(其中一年級為0到1)將四個數分別代表符號+-*/
準確率的計算————在程式運行當中,計算其中答案為正確的個數以便在程式結束時可以計算準確率
中途退出————設定一個標記函式(s)在第一題回答完時出現,輸入這個標記函式的值來表示是否繼續
//二年級
else//選擇答題
        {
            /*答題模組*/
            printf("請輸入你要做的題目數量:");
            scanf("%d", &g);
            for (i = 1; i <= g; i++)
            {
                system("cls");
                printf("第%d到題:\n", i);
                srand((unsigned int)time(NULL)); //以時間設定為隨機生成 
                c = rand() % 4;  //隨機生成0-3的數 

                if (c == 0)  //加法 
                {
                    a = rand() % 100;   //隨機生成100內的數 
                    b = rand() % 100;   //隨機生成100內的數 
                    printf("需要中途退出則請答完這題按提示操作。\n");
                    printf("%d+%d=", a, b);
                    scanf("%d", &d);
                    if (d == a + b)
                    {
                        printf("恭喜答對了。\n"); t++;
                        printf("退出按0,繼續按1。\n");
                        scanf("%d", &s);
                        if (s == 0)
                        {
                            printf("你做的題正確率是:%.02f%%\n", t / (i * 1.0) * 100);
                            break;
                        }
                    }

                    else
                    {
                        printf("對不起你答錯了,正確答案為:%d。\n", a + b);
                        printf("退出按0,繼續按1。\n");
                        scanf("%d", &s);
                        if (s == 0)
                        {

                            printf("你做的題正確率是:%.02f%%\n", t / (i * 1.0) * 100);
                            break;
                        }
                    }

                }
                else
                    if (c == 1)  //減法 
                    {
                        a = rand() % 100;//隨機生成100內的數 
                        b = rand() % (a + 1);//隨機生成a內的數 
                        printf("需要中途退出則請答完這天按提示操作。\n");
                        printf("%d-%d=", a, b);
                        scanf("%d", &d);
                        if (d == a - b)
                        {
                            printf("恭喜答對了。\n"); t++;
                            printf("退出按0,繼續按1。\n");
                            scanf("%d", &s);
                            if (s == 0)
                            {
                                printf("你做的題正確率是:%.02f%%\n", t / (i * 1.0) * 100);
                                break;
                            }
                        }
                        else
                        {
                            printf("對不起你答錯了,正確答案為:%d。\n", a - b);
                            printf("退出按0,繼續按1。\n");
                            scanf("%d", &s);
                            if (s == 0)
                            {

                                printf("你做的題正確率是:%.02f%%\n", t / (i * 1.0) * 100);
                                break;
                            }
                        }
                    }
                    else if (c == 2)  //除法
                    {
                        printf("若答案為小數請輸入三位小數");
                        a = rand() % 10;//隨機生成10內的數 
                        b = rand() % 10;//隨機生成a內的數
                        while (b == 0)   //除數不為零 
                        {
                            b = rand() % 10;//隨機生成a內的數
                        }
                        printf("需要中途退出則請答完這題按提示操作。\n");
                        printf("%d/%d=", a, b);
                        scanf("%f", &f);
                        if (((f - a / (b * 1.0) <= 0.001) && (f >= a / (b * 1.0))) || ((a / (b * 1.0) - f <= 0.001) && (f <= a / (b * 1.0))))   //因為float存在誤差,得用誤差算 
                        {
                            printf("恭喜答對了。\n"); t++;
                            printf("退出按0,繼續按1。\n");
                            scanf("%d", &s);
                            if (s == 0)
                            {
                                printf("你做的題正確率是:%.02f%%\n", t / (i * 1.0) * 100);
                                break;
                            }
                        }
                        else
                        {
                            printf("對不起你答錯了,正確答案為:%.03f。\n", a / (b * 1.0));
                            printf("退出按0,繼續按1。\n");
                            scanf("%d", &s);
                            if (s == 0)
                            {

                                printf("你做的題正確率是:%.02f%%\n", t / (i * 1.0) * 100);
                                break;
                            }
                        }
                    }
                    else
                        if (c == 3)   //乘法
                        {
                            a = rand() % 10;//隨機生成10內的數 
                            b = rand() % 10;//隨機生成a內的數
                            printf("需要中途退出則請答完這天按提示操作。\n");
                            printf("%d*%d=", a, b);
                            scanf("%d", &d);
                            if (d == a * b)
                            {
                                printf("恭喜答對了。\n"); t++;
                                printf("退出按0,繼續按1。\n");
                                scanf("%d", &s);
                                if (s == 0)
                                {
                                    printf("你做的題正確率是:%.02f%%\n", t / (i * 1.0) * 100);
                                    break;
                                }
                            }
                            else
                            {
                                printf("對不起你答錯了,正確答案為:%d。\n", a * b);
                                printf("退出按0,繼續按1。\n");
                                scanf("%d", &s);
                                if (s == 0)
                                {

                                    printf("你做的題正確率是:%.02f%%\n", t / (i * 1.0) * 100);
                                    break;
                                }
                            }
                        }
            }
            if (s != 0)
                printf("你做的題正確率是:%.02f%%\n", t / ((i - 1) * 1.0) * 100);
            system("pause");
        }
    }
}

2.3.執行結果截圖,測試用例

兩個初始選單


輸入答案

題數上限

中途退出

2.4.大作業中程式設計技巧總結

第一個是通過數字的隨機表示運算子的隨機
第二個是通過system("pause");讓程式定住