C語言I博客作業11


一.表格

這個作業屬於哪個課程 C語言程序設計II
這個作業要求在哪里 C語言I博客作業11
我在這個課程的目標是 把C語言學精,熟練掌握編程技術,努力找到簡單代碼的寫法
這個作業在哪個具體方面幫助我實現目標 PTA上做題,devc++慢慢掌握調試,加強對於函數類型以及靜態和動態儲存的理解與應用
參考文獻 百度百科其他同學作業,《C Primer Plus》,教科書

二.本周作業

1.PTA實驗作業

1.1統計某類完全平方數

題目內容描述:本題要求實現一個函數,判斷任一給定整數N是否滿足條件:它是完全平方數,又至少有兩位數字相同,如144、676等。

函數接口定義:

int IsTheNumber ( const int N );

輸入樣例:

105 500

輸出樣例:

cnt = 6
1.1.1數據處理
  • 數據表達r,n,a[10],d(變量);運算,賦值(怎么來);int(整型)

  • 函數參數主函數是“int main()”,被調函數是“int IsTheNumber ( const int N )”實參是N,形參是r,n,a,它們都是整型

  • 數據處理

定義變量r來放參數N二分之一次方,n來放參數N,a[10]來放完全平方數(完全平方數可以有10位)

if(r*r==N)
   判斷是否是完全平方數
   定義變量d來表示數組里的元素
   while(n){
     d=n%10;
     求完全平方數個位數
     a[d]++;
     數組元素位置上加1
     if(a[d]==2){
     是否同一個元素位置上等於2
     返回1;跳出循環
     


   n/=10; 
   取出完全平方數的各位數
   }
  不是便返回0
1.1.2實驗代碼截圖

1.1.3造測試數據
輸入數據 輸出數據 說明
105 500 cnt = 6 題目樣例
1 100 cnt = 1 包含所有二位數
1 1000 cnt = 9 包含所有3位數
-100 0 cnt = 0 不符合條件
1.1.4PTA提交列表及說明


```
題目說明:這個題目剛開始想不用數組去寫,想了很久,發現根本不可以。因為完全平方數的位數無法確定,所以必須用數組才可以解決這個問題。去百度搜了一下數組怎么用,然后再dev上試了十多分鍾,便寫出來了。理解之后便寫在pta上面了。

### 1.2 <span style="color:red">統計各位數字之和是5的數</span>
#### 題目內容描述:<span style="color:red">本題要求實現兩個函數:一個函數判斷給定正整數的各位數字之和是否等於5;另一個函數統計給定區間內有多少個滿足上述要求的整數,並計算這些整數的和。</span>
# 函數接口定義:

int is( int number );
void count_sum( int a, int b );

![](https://img2018.cnblogs.com/blog/1806727/201912/1806727-20191206135958595-1883444523.jpg)
# 輸入樣例:

104 999

# 輸出樣例:

104 is counted.
count = 15, sum = 3720

##### 1.2.1<span style="color:blue">數據處理</span>:
- <span style="color:blue">數據表達</span>:<span style="color:red">a,i,sum,j,count(變量)</span>運算,賦值(如何來);<span style="color:red">int(整型)</span>
- <span style="color:blue">函數參數</span>:<span style="color:red">主函數是“int main()”,被調函數是“int is( int number )”和“void count_sum( int a, int b )”;實參是number,a,b;形參是a,i,sum,j,count,它們都是整型變量。</span>
- <span style="color:blue">數據處理</span>:

int is(int number)
定義i來放number(正整數),定義a來放正整數的各位數字,定義sum來放各位數字之和
while(i>0)
a = i % 10;
sum=sum+a;
i = i/10;//取出正整數各位數
if (sum == 5)
判斷是否各位數字之和是否等於5
是則返回1
不是便返回0.

void count_sum(int a, int b)
定義j來放a--b之間數,定義count來放滿足要求的所有整數,定義sum來放滿足要求的整數之和
for (j=a;j<=b; j++)
if (is(j))
是否滿足各位數字之和等於5
sum+=j;
count++;

printf("count = %d, sum = %d", count, sum);
輸出足要求的所有整數,滿足要求的整數之和
##### <span style="color:green">1.2.2實驗代碼截圖</span>
![](https://img2018.cnblogs.com/blog/1806727/201912/1806727-20191206141211002-449279270.jpg)
![](https://img2018.cnblogs.com/blog/1806727/201912/1806727-20191206141242128-121054548.jpg)
##### 1.2.3造測試數據
輸入數據|輸出數據|說明
---|---|---
104 99|![](https://img2018.cnblogs.com/blog/1806727/201912/1806727-20191206141043976-509411339.jpg)|題目樣例
1 100|count = 6,sum = 165|計算所有2位數值
99 99999|count = 120,sum = 1399821|取較大數值
-100 -1|count = 0,sum = 0|不符合題目條件
##### <span style="color:blue">1.2.4PTA提交列表及說明</span>
![](https://img2018.cnblogs.com/blog/1806727/201911/1806727-20191127231914474-1221851653.jpg)
<span style="color:red">```
編譯錯誤:剛開始設置變量sum1,sum2,以為這兩個變量不一樣。看清題目之后才知道這兩個變量是一樣的,只要設置一個就行;把sum1和sum2改為sum
```</span>

## <span style="color:green">2.代碼互評</span>
### 2.1.1 同學代碼截圖①
![](https://img2018.cnblogs.com/blog/1806727/201912/1806727-20191206193617668-2140009721.png)
### 2.1.2自己代碼截圖①
![](https://img2018.cnblogs.com/blog/1806727/201912/1806727-20191206133507376-394570935.jpg)
- <span style="color:red">我們的不同之處</span>.
- 我們的思路是一樣的<span style="color:red">先用變量表示完全平方數,然后再去判斷是否相等</span>,不過<span style="color:red">數組判斷有點不一樣,我直接是等於2,他是用了一個變量</span>。
- while()有些不一樣<span style="color:red">我是省略了大於0</span>。我用d表示數組元素<span style="color:red">在d表示的數賦值</span>,<span style="color:red">他是直接用另一個數組元素j賦值</span>。
- 他的代碼比我好理解一點,為了能讓人都讀懂,我應該要學他這種代碼易懂得寫法
### 2.2.1同學代碼截圖②
![](https://img2018.cnblogs.com/blog/1806727/201912/1806727-20191206194036923-281328030.png)
### 2.2.2自己代碼截圖②
![](https://img2018.cnblogs.com/blog/1806727/201912/1806727-20191206141211002-449279270.jpg)
![](https://img2018.cnblogs.com/blog/1806727/201912/1806727-20191206141242128-121054548.jpg)
- <span style="color:red">我們的不同之處</span>.
- 他的思路和我差不多,不過表達有些偏差。
- 他用<span style="color:red">number表示正整數</span>;我是直接用i賦值給number,這樣可以省<span style="color:red">不少字</span>。
- 我和她while()有點偏差。她是不等於0,我是大於0。
- 他的這種思維<span style="color:red">更加簡單</span>,不過邏輯沒有我<span style="color:red">緊密</span>。
## 3.學習總結
#### 3.1學習進度條
周/日期| 這周所花的時間|代碼行|學到的知識點簡介|目前比較迷惑的問題
---|:---|:---|:---|:---
十一/3/12-6/12|3天|150|<span style="color:red">**函數類型以及靜態和動態儲存的理解與應用**</span>|挑戰題數組的運用
十/26/11-29/11|2天|110|<span style="color:red">**對循環語句for,if-else加強理解以及對嵌套掌握更加熟練**</span>|還有點不清楚字符怎么用
九/19/11-22/11|3天|100|<span style="color:red">**break語句,continue語句用法和區別**</span>|不太清楚字符怎么用
八/12/11-15/11|3天|120|<span style="color:red">**while和do-while循環語句用法和概念**</span>|暫時沒有
七/5/11-8/11|3天|140|<span style="color:red">**switch語句用法**</span>|如果x為浮點型,y,z為整型為什么x=y/z答案不對
六/28/10-2/11|3天 |130|<span style="color:red">**嵌套if-else語句,格式以及如何應用**</span> |不太清楚Devc++怎么調試
五/22/10-25/10|3天 |100|<span style="color:red">**用法如何定義函數,格式以及如何應用**</span> |暫時沒有
四/15/10- 18/10|3天 |80|<span style="color:red">**循環結構,流程圖,數學函數**</span> |數學公式的表達,為什么整數除以變量有一個要用括號括起來還要乘以1.0
三/9/10-13/10 |3天 |70|<span style="color:red">**if-else,&&用法,字母%用法,數學函數**</span> |PTA每次答案錯誤,都十分難找出來。不得已重打

#### 3.2累計代碼行和博客字數
![](https://img2018.cnblogs.com/blog/1806727/201912/1806727-20191205224730783-848431611.jpg)
#### 3.3學習內容總結和感悟
##### 3.3.1學習內容總結
![](https://img2018.cnblogs.com/blog/1806727/201911/1806727-20191121144933450-1685871308.jpg)
##### 3.3.2學習體會
- 這周主要進行<span style="color:red">對函數的拓展:</span><span style="color:red">**全局變量、局部變量、靜態和動態存儲區**</span>怎么用,是什么。感覺函數類似於數學函數啊。。依舊的難理解。看樣子要多看書和b站大學理解了。
- 這次作業一元二次方程好難啊。。復數的輸出真的好難。。應該是因為高中沒對一元二次拓展,,完全不知道復數跟怎么討論
- 主要是進行<span style="color:red">全局變量和局部變量以及自動變量和靜態變量的分別</span>。
- 快要期末了,我發現上課學的知識真的很少,這也說明了大學是靠自學的。下周就要考選擇題了。。我得抓緊學后面內容了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM