標籤:總結 組元 字母 1.5 中間 統計 解決 錯誤 如何
題目:7-2 統計一行文本的單詞個數1. 本題PTA提交列表
2. 設計思路
定義變數a[1000]儲存文本出現的單詞變數i用於迴圈,變數m表示字串長度,變數k表示單詞個數;if a[0] != 空格 則k=0;反之 k=1;for i=0 to i<m-1 if a[i]==空格並且a[i+1] != 空格 則k++輸出k
3.代碼(注意,,,。不要粘貼部落格上。不用用···文法去渲染)
4.本題調試過程碰到問題及PTA提交列表情況說明。
(PTA提交列表中的每個錯誤詳細說明為什麼及如何解決。)
寫這道題的時候,想過用a[i]!=空格並且a[i+1] == 空格,但是最後一個字元並不是空格,總會造成輸出個數少一i個
解決方案:先通過一個條件判斷a[0]是否等於空格來給k初賦值,這樣既可以考慮到只有一個單詞的情況,也可以使結果正確。
題目:7-5 統計大寫輔音字母1. 本題PTA提交列表
2. 設計思路
3.代碼(注意,,,。不要粘貼部落格上。不用用···文法去渲染)
4.本題調試過程碰到問題及PTA提交列表情況說明。
(PTA提交列表中的每個錯誤詳細說明為什麼及如何解決。)
這道題沒有遇見問題
題目:7-1 字串轉換成十進位整數1. 本題PTA提交列表
2. 設計思路
int i=0,k=0; 迴圈變數 char hexad[80],str[80]; 數組str用於儲存輸入的字串,數組hexad為數組str濾去非十六進位後產生新字串 long number=0,flag=1; 輸入字串str[i],將‘\0‘存入數組,遇見#停止 for i=0 如果str[i]!=‘\0‘ 則i++) 如果 str[i]==‘-‘並且k==0 則flag=-1; //存在‘-‘情況 如果 str[i]>=‘0‘&&str[i]<=‘9‘||str[i]>=‘a‘&&str[i]<=‘f‘||str[i]>=‘A‘&&str[i]<=‘F‘ 濾去非十六進位後產生新字串hexad hexad[k]=str[i]; k++; hexad[k]=‘\0‘; for i=0 如果hexad[i]!=‘\0‘ 則i++ 轉化成十進位 如果 hexad[i]>=‘0‘&&hexad[i]<=‘9‘ 計算number=number*16+hexad[i]-‘0‘; 如果hexad[i]>=‘a‘&&hexad[i]<=‘f‘ 計算number=number*16+hexad[i]-‘a‘+10; 如果hexad[i]>=‘A‘&&hexad[i]<=‘F‘ 計算number=number*16+hexad[i]-‘A‘+10; 輸出number*flag
3.代碼(注意,,,。不要粘貼部落格上。不用用···文法去渲染)
4.本題調試過程碰到問題及PTA提交列表情況說明。
(PTA提交列表中的每個錯誤詳細說明為什麼及如何解決。)
沒有考慮‘-’存在的情況,造成代碼部分正確
解決方案:定義一個flag表示符號,考慮負號存在的情況,利用flag轉換符號
二、本周題目集的PTA最後排名。(2分)
PTA排名
三、同學代碼結對互評(1分)1.互評同學名稱 管正2.My Code、互評同學代碼(此處核心代碼就好,不一定全部代碼,圖上指明是誰的代碼。)
管正的代碼
My Code
3.我和同學代碼不同在哪裡?有哪些各自優勢?你更喜歡哪種代碼風格?如果同學代碼有錯的也請幫忙指出來哪裡出問題。
(注意:第3項是評分重點,一定要有針對性說出問題,別都說好話,請專業去說他代碼有哪些優勢、哪些劣勢。)
我們兩個在字串的輸入和濾去非十六進位後產生新字串hexad的代碼基本一致,但是在考慮‘-’存在的情況下有巨大的差異。管正是在計算number處的地方,通過判斷a[i]==‘-‘,a[i+1]為16進位字元後,把‘-’賦值給op,並且利用變數time來保證‘-’為開頭出現,而不存在中間出現的情況。而我則是利用濾去非十六進位的過程中,通過判斷 str[i]==‘-‘並且k==0,對符號進行定義。這也是為什麼My Code步驟少,而他的步驟卻比較繁多。雖然他的很多步驟必不可少,但是卻很多餘。為什麼說必不可少,因為如果把他三種情況下的計算中的time++去掉,或者把他對於數組a的判斷中的time==1去掉都會造成結果錯誤。說他的代碼多餘是因為他本來可以不用這麼多變數定義一個符號,而且他最後的結果輸出還要通過判斷x=1,再分別輸出。所以我更喜歡My Code。針對我們的代碼出現的問題,我也意識到相同的pta問題,即使前面的代碼步驟一致,但只要有一步不一樣,代碼也會大不相同。而且代碼的難易程度有時候往往是一步之差。
四、本周學習總結(3分)
1.你學會了什嗎?
1.1指標變數如何定義(設計代碼可以用markdown代碼符號渲染)?
變數的類型 變數名
int p;
char *p;
1.2 指標加法運算運用在哪種情況,2個指標變數能否相加?
指標指向數組時,遞增表示指標下移;不能相加。
1.3 指標不賦初值,直接使用,會出現什麼情況,請用DEVC驗證,並展示?
出現隨機數字
1.4 課堂派上關於分離浮點數的整數部分和小數部分那題,請用DEVC驗證實現,並在此貼圖展示,同時說明哪句是指標變數做函數形參,函數實參應該怎麼表示。指標變數做函數形參有什麼用處?
指標變數做函數形參 void spllitfloat(float x,int* intpart,float* fracpart)
函數實參spllitfloat(x,ip,fp);
可以在函數中改變主函數中變數的值
1.5 請把課本的冒泡排序的函數改成指標變數做形參格式,並把代碼寫在底下,注意用markdown文法渲染。
void bubble(int *p,int n){ int i,j,t; for(i=1;i<n;i++) for(j=0;j<n-i;j++,p++) if(*p>*(p+1)) { t=*p; *p=*(p+1); *(p+1)=t; }}
1.6 如何定義一個指標變數指向數組,如何用指標變數表示數組元素?
將數組名賦給指標變數名
int p;
int a[5];
p=a;
1.7 如何定義字元指標指向字串?指標指向字串後,初始位置在哪裡?
char p,str[11]={yjsyjsyjsnb};
p=str;
初始位置為str[0]
1.8 利用字元指標操作字串,如設計函數實現字串串連,請在此貼圖展示代碼。說明指標表示字元的方法好處是什嗎?
更靈活,更簡短。
2.本周你不會內容有什嗎?
2.1 課堂派錯題羅列及如何訂正。
這道題錯的很不應該,應該說這道題和指標沒多大關係,考的是運算子號的優先順序,我應該先判斷p1==&m是否成立,成立為1,不成立為0;
地址常量不能變化
A的值為10,c的值超過9,D的值不能相加,所以是B;
字元型變數不能賦值
2.2 其他不會的?打算怎麼解決
看書,百度,問同學
3.數組上機考試小結
3.1 那題錯了,請羅列?
函數第二題,數組所有題
3.2 錯題如何訂正,為什麼錯了?
ip地址
#include<stdio.h>int main(){ char ch[33]; int i=0,sum=0,count=0,time=0; scanf("%c",&ch[i]); while(ch[i]!=‘\n‘){ i++; scanf("%c",&ch[i]); } for(i=0;i<32;i++){ sum=sum*2+ch[i]-‘0‘; count++; if(count%8==0){ time++; if(time==1) { printf("%d",sum); } else{ printf(".%d",sum); } sum=0; } } return 0;}
其他題都沒思路
C語言部落格作業--字元數組