C語言博客做業05--指針

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

1.1 思惟導圖

1.2 本章學習體會及代碼量學習體會

1.2.1 學習體會

我在C語言的學習過程當中,意識到指針是至關重要的一部分,學好指針對C的學習有很重要的意義。
指針和內存若是說內存至關於街道,那麼地址就至關於位於街道中房子的房號。
而且懂得了如何對指針初始化,賦值等。算法

1.2.2 代碼累計

2.PTA總分(2分)

2.1截圖PTA中函數題目集的排名得分

2.2 個人總分:110分。

3.PTA實驗做業(1分)

3.1 PTA題目1

藏尾詩
本題要求編寫一個解密藏尾詩的程序。數組

3.1.1 算法分析

定義char型a,b數組
for循環
輸入第一行詩詞
j=strlen(a);計算歌詞的長度
b[i]=a[j-2];由於漢字佔倆個字節
b[i+1]=a[j-1];
i=i+2;
輸出數組b函數

3.1.2 代碼截圖

3.1.4 PTA提交列表及說明

Q1:出現錯誤是在漢字佔用倆個字節這裏學習

4.大做業(5分)

題目:實現小學四則運算。
在函數那章,咱們已經實現小學四則運算這份做業,如今要求你們把以前設計函數升級改造,原來的函數你們都是用全局變量實現不一樣函數參數傳遞,此次做業要求改地址傳遞,減小全局變量的使用。設計

題目要求:
題目有3個難度級別,分別爲:
第一級是1位數的一步加減乘除計算
第二級是2位數的2步加減運算
第三級是3位數的2步加減運算
改進內容:3d

1.構造字符數組存放算術表達式

無論哪一個級別的算式,請都生成一個字符數組存放。無論用戶選擇哪一個級別題目,都能在表達式生成函數中生成一個算術式子。具體函數接口
void CreateExp(char *exp,int level)
{
switch(level)
{
case 1:生成一位數一步加減式子,寫入字符數組exp;
case 2:生成2位數2步加減式子,寫入字符數組exp;
case 3:生成3位數2步加減式子,寫入字符數組exp;
}
// 注意三位數隨機數,應該也包含生成一位數,即用rand()%1000就能夠。
}指針

2.表達式是否合法(選作)

對於不合法或者超出該級別小學生學習範圍的表達式,視爲不合法,需重造一個。不合法表達式體現有除數爲0的表達式、1,2級別中出現不能整除的除法表達式或其餘不合法狀況
int IsExp(char *exp,int level)
{
}blog

3.表達式運算

根據字符表達式,能計算其結果。有能力同窗深刻研究表達式優先級。
int ComputeExp(char *exp)
{
}
這塊代碼能夠參考這題作法:接口

include <stdio.h>
int main()
{
int m=0, sum=0;
char c, oldc='+';
do {
c = getchar();
if( c<='9'&&c>='0' )
m = 10*m + c - '0';//1
else
{
if( oldc == '+' )
sum += m;
else
sum -= m;
m = 0;//2
oldc = c;
}
} while(c!='=');
printf("sum=%d", sum);
return;
}內存

4.1.改造函數介紹

主要上述三個函數的改造說明

1.函數1

void CreateExp(char exp,int level)
定義intx型變量n1,n2用於生成隨機數;c用於生成四個數判斷運算符
定義char型變量op;
switch level
case 1
srand 生成一位數 n1,n2 c
switch(c)
case 0:strcat(exp,"+");break;
case 1:strcat(exp,"-");break;
case 2:strcat(exp,"
");break;
case 3:strcat(exp,"/");break;
case 2
同上
case 3
同上
strcat(exp,"=");
輸出表達式的字符串exp

3.函數3

int ComputeExp(char *exp,int level)
定義int型變量len
strlen exp 賦值給len
do
op=getchar();
if(op<='9'&&op>='0' )
返回result的值

4.4 改進大做業總結

1.使用指針來傳遞數據,相對於全局變量來講在運算上比較不容易出現錯誤 2.改進過程當中遇到的問題較多,不少問題沒法解決 3.在此次的改進中我意識到本身的不足,在C的學習上我更應該努力的學習!

相關文章
相關標籤/搜索