<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      鐘海清

      導航

      第五次作業------指針

      1.本章學習總結

      1.1 思維導圖

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

      1.2.1 學習體會

          換個說法吧,后面的博客,每次都說好難好難也不好。(不過也是事實)
          指針,我稍微會用的就是和數組有關聯的那一部分。拿著自己寫的題目去問同學,他說我指針用的太過了,也的確是,不太會用,就拿做過的課堂派作業照著葫蘆畫瓢,尋一點點感覺。還是指針,我用了,自己都不知道他跑到哪里去了,看了半天都沒毛病,請教大佬后一語道破。目前對指針還是挺迷的,能不用指針我就盡量不用吧。(在你完全熟悉指針之前,盡量不要亂用。----這是大佬對我的寄語)。不過,有的題目用用指針還是蠻方便的。
          此次大作業,說實話,真的看得一臉懵逼。本來就不怎么會用,然后有點不知道怎么下手。不過,也不能不做,做了總比沒做好,哪怕是看著別人的寫的,也比自己不寫好,好歹有個印象。后來和同學聊天談到,不怎么會用指針的話,至少會多少寫多少吧,先把一級的寫了。后來想想也對,這不就是把大問題分解成小問題嘛,解決起來就沒有那么困難。
          此次作業,我還是要認真的,上次函數大作業沒寫好,以至于這次要基本全部重來一遍,非常費勁,如果這次還是那么含糊的話,那下次就是和文件關聯,與課設有關了。對中間要求嚴格一點,做的更好一點,也是為了后面能不學的那么累。
      

      1.2.2 代碼累計

      2.PTA總分

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

      2.2 我的總分:

      指針pta總分110
      

      3.PTA實驗作業

      3.1 PTA題目1

      7-3 字符串的冒泡排序 (20 分)
      我們已經知道了將N個整數按從小到大排序的冒泡排序法。本題要求將此方法用于字符串序列,并對任意給定的K(<N),輸出掃描完第K遍后的中間結果序列。
      
      輸入格式:
      輸入在第1行中給出N和K(1≤K<N≤100),此后N行,每行包含一個長度不超過10的、僅由小寫英文字母組成的非空字符串。
      
      輸出格式:
      輸出冒泡排序法掃描完第K遍后的中間結果序列,每行包含一個字符串。
      

      3.1.1 算法分析

      定義二維字符數組ch[100][20]
      for(i=0 to n)
          do
              scanf("%s",ch[i])//將字符串看做一個整體存放在數組中
      end for
      定義j
      - for(i=0 to k)循環到k輪結束
          do 
             -  for(j=0 to n-1-i)//考慮到最大的那個數在最后的情況,要減1
                  do
                         -  if(ch[j]>ch[j+1])
                               定義字符數組t[20]
                               //利用函數strcpy交換ch[j]與ch[j+1]的值
                               strcpy(t, ch[j]); 
                               strcpy(ch[j], ch[j+1]);
                               strcpy(ch[j+1], t);	
                          end if
              end for
      end for
      - for(i=0 to n)
          do
              輸出ch[i]
      end for
      

      3.1.2 代碼截圖

      3.1.4 PTA提交列表及說明

      • Q1:開始一直想著用一位數組循環存放字符串,后面發現不行
      • A1:將字符串的存儲改為用二維數組
      • Q2:對字符串這個整體,不知道該怎么處理,開始想著是,讀到空格就結束,前面的字符構成一個數組,就是一個字符串放在一個數組中的意思
        后面發現根本不知道該怎么表示,無從下手
      • A2:換一種思考方式,將字符串作為一個數組元素存放,將字符串看做一個整體處理
      • Q3:冒泡交換兩個數的值時,定義一個指針放值,發現不行
      • A3:用函數strcpy,進行復制處理,同時將指針改為一個數組去存放相應的字符串

      4.大作業

      題目:實現小學四則運算,有3個難度級別,分別為:

      第一級是1位數的一步加減乘除計算
      第二級是2位數的2步加減運算
      第三級是3位數的2步加減運算
      改進內容:

      4.1.改造函數介紹

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

      定義lence//表示數組長度
      - if(level == 1)
           lence = 4;//一級運算式子共有4個字符 
      - else if(level == 2) 
           lence = 9;//一級運算式子共有9個字符 
      - else 
           lence = 12;			//一級運算式子共有12個字符 
      end if
      - for( i = 0 to lence-1)
      	- for(j = 0 to level)//一級是一位數,二級兩位數,三級三位數 
      		- if(level>1)//大于兩位數的隨機數,第一位數字不能為0 
      			- if(j==0)
                                      exp[i++] = rand() % 9+'1';//第一位數字不能為0
      			- else 
                                      exp[i++] = rand() % 10 + '0';
      			end if
      		else 
                              exp[i++] = rand() % 10 + '0';
                      end if
      	end for	
      	- if(level == 1)//等級一生成四個運算符 
      		t = rand() % 4;
      		if (t == 0) exp[i] = '+';
      		else if (t == 1) exp[i] = '-';
      		else if (t == 2) exp[i] = '*';
      		else exp[i] = '/';
      	- else		 //等級二三生成兩個運算符 
      		t = rand() % 2;
      		if (t == 0) exp[i] = '+';
      		else exp[i] = '-';
      	end if
      end for
      exp[lence-1] = '=';//讓最后一個為等號
      exp[lence] = '\0';
      

      截圖函數代碼

      2.計算結果的函數
      算法分析

      定義計算結果sum并初始化為0
      定義oldc為原來字符并復制為 + 
      do
              - if(exp[i]<='9'&&exp[i]>='0' ) //讀到的字符是數字,累計起來
                      m=10*m+exp[i]-'0';
              - else 
                 	- if(oldc=='+' )//加法
                  	        sum += m;
                 	- else if(oldc=='-')//減法
                  	        sum -= m;
                      - else if(oldc=='*')//乘法
                  	        sum *= m;
                      - else if(oldc=='/')//除法
                  	        sum /= m;
                      end if
                	m = 0;//重新歸零,不影響下次運算
                 	oldc =exp[i];//賦新制
           	end if
           	i++;//i自增讀下一個字符
         }while(exp[i-1]!='=');
      end do while
         返回最終結果sum;
      

      代碼截圖

      4.2 與原有函數代碼比較

      改造前函數1和改造后的函數1

      • 在生成式子計算的時候,我改造之后的是每次調用函數生成式子,而原來的是在每個等級中循環生成式子并計算結果,改造之后大大增強了代碼的可讀性
      • 現有代碼,巧妙運用exp存放,比原來的代碼量有所減少

      改造前函數2和改造后的函數2

      • 原來計算結果是用switch語句判斷符號,然后再用result去做相應的加減乘除運算,分的情況會很多,很麻煩
      • 現在改造的函數是讀取存放進數組的字符,來計算結果,非常巧妙,代碼量大大減少

      4.3 改進大作業總結

      • 在運用exp的時候,我參考同學代碼用來sprintf將式子放入數組中,但我發現根本出不來等式,后面才知道原來還要printf將式子表示出來。然后當時運用的是指針,要申請內存,不然就會出錯,總之,改來改去我就干脆把他改成數組算了,省事。但是。。。。。。后來我又改了,因為我發現自己并不熟悉sprintf的用法,后來想想,我的哪里用了指針,就是硬湊上去的嘛。于是,我就在同學建議下對三個級別分情況討論,依次將字符存入數組中,更加簡便易懂
      • 困擾我最久的就是,我分明返回了result的值,但它最后就是顯示為0,經過問學長學姐,才知道原來我要把我返回的result的值賦給一個x,這樣才能把正確結果存起來
      • 在計算結果的那個函數中,參考了老師提供的代碼,對數字進行累計和對運算符進行不斷更新,使計算看起來更方便一些,同時也和生成式子的那個指針關聯起來了。
      • 指針,其實現在還是比較怕用的,因為我不太清楚他到底要怎么指。而且,此次作業對于我來說可以說是一次大改動了,上次函數大作業還有許多bug,后來就一直放著,這次就很費勁,我不想重蹈覆轍,于是又對代碼進行修改,盡量少點錯誤。
      • 大作業是一次一次相關聯的,盡量做到最好吧,不然如果這個又做不好的話,那我后面的文件和課設豈不是一團糟了。。。

      posted on 2018-12-17 22:26  haiqingz  閱讀(389)  評論(2)    收藏  舉報

      主站蜘蛛池模板: 亚洲综合久久精品哦夜夜嗨| 亚洲精品一区二区制服| 视频一区二区三区四区五区| 亚洲欧美自偷自拍视频图片| 欧美成人精精品一区二区三区| 无套内谢少妇一二三四| 无码一区二区三区AV免费| 免费久久人人爽人人爽AV| 97精品亚成在人线免视频| 偷拍美女厕所尿尿嘘嘘小便| 香港特级三A毛片免费观看| 老鸭窝在线视频| 国内女人喷潮完整视频| 国内外成人综合免费视频| 无码人妻斩一区二区三区 | 国模雨珍浓密毛大尺度150p| 亚洲人成网站77777在线观看| 又大又粗欧美成人网站| 亚洲国产av久久久| 欧美人禽zozo动人物杂交| 国产精品视频白浆免费视频| 潞城市| 成人拍拍拍无遮挡免费视频| 开心五月婷婷综合网站| 蜜芽亚洲AV无码精品国产午夜| 亚洲精品视频一二三四区| 精品无码久久久久国产电影| 久久热这里只有精品99| 成人亚洲av免费在线| 久久精品国产99国产精品严洲| 午夜一区二区三区视频| 青青青国产在线观看免费| 激情五月日韩中文字幕| 亚洲精品理论电影在线观看 | 国产国语毛片在线看国产| 四虎www永久在线精品| 国产成人免费高清激情视频| 欧洲精品色在线观看| 女人与牲口性恔配视频免费| 精品 日韩 国产 欧美 视频 | 亚洲人成电影在线播放|