Vue2.6插槽v-slot是如何使用的
阿新 • • 發佈:2020-11-30
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");讓程式定住