C語言I博客做業10

這個做業屬於哪一個課程 C語言程序設計II
這個做業要求在哪裏 C語言I做業10
我在這個課程的目標是 學會編程,運用編程製做有趣的東西
這個做業在那個具體方面幫助我實現目標 多瞭解c語言的一些知識
參考文獻 C語言程序設計I,百度
#1.PTA做業
##1.PTA實驗做業
###1.1輸出三角形字符陣列
###內容:本題要求編寫程序,輸出n行由大寫字母A開始構成的三角形字符陣列。
輸入格式:
輸入在一行中給出一個正整數n(1≤n<7)。
輸出格式:
輸出n行由大寫字母A開始構成的三角形字符陣列。格式見輸出樣例,其中每一個字母后面都有一個空格。
輸入樣例:
4
輸出樣例:
A B C D 
E F G 
H I 
J

###1.1.1數據處理c++

**數據表達:定義整形變量i,j,n,定義字符變量ch,令ch=‘A’,i,j爲循環條件,n爲輸入的數。**
**數據處理:僞代碼**
定義整形變量和字符變量
輸入n
for(i=0;i<n;i++)
{
    for(j=0;j<n-i;j++)for循環
        {
        printf("%c ",ch);輸出字符
        ch++;字符累加
        }
        printf("\n")輸出回車
  end

###1.1.2實驗代碼截圖 ##1.1.3造測試數據 |輸入數據|輸出數據|說明| |----|-----:|:-----| |2||1-7之間| |3||1-7之間| |4||1-7之間| |6||1-7之間| ###1.1.4PTA提交列表及說明 git

###提交列表說明:
**1.答案錯誤:我沒有使用循環嵌套,輸出不了多個行,字母沒有出來,後經改正運用循環嵌套**
**2.答案錯誤:我寫的是「i=1;i<=n和j=1;j<=n-i"顯示答案錯誤後改成i=0;i<n;j=0;j<=n-i**

##1.2梅森數算法

**內容:**形如2^n−1的素數稱爲梅森數(Mersenne Number)。例如2^​2−1=三、2^3−1=7都是梅森數。1722年,雙目失明的瑞士數學大師歐拉證實了2^31 −1=2147483647是一個素數,堪稱當時世界上「已知最大素數」的一個記錄。
本題要求編寫程序,對任一正整數n(n<20),輸出全部不超過2​^n −1的梅森數。
輸入格式:
輸入在一行中給出正整數n(n<20)。
輸出格式:
按從小到大的順序輸出全部不超過2^n−1的梅森數,每行一個。若是徹底沒有,則輸出「None」。
輸入樣例:
6
輸出樣例:
3
7
31

##1.2.1數據處理編程

**數據表達:定義整形變量i,j,sum,n,count=0 ,n爲輸入的數 ,sum爲輸出梅森數,i,j爲循環條件 **
**數據處理:僞代碼**
輸入n 
if n>=2&&n<20 then 
     for i=2 to n
 把2的m次方減1賦值給sum
 for j=2 to i-1 
 if i%j==0 then 
 count累加 
if x==0 then 
   輸出i和換行
   count=0;
else輸出None

##1.2.2實驗代碼截圖 ##1.2.3造測試數據 |輸入數據|輸出數據|說明| |----------|----------:|:-------| |0||沒有素數| |8||範圍內的隨機數| |12||範圍內的隨機數| |19||最大的數| ##1.2.4PTA提交列表及說明 函數

**提交列表說明:**
**1.部分正確:在0的那種狀況,答案錯誤,詢問大佬後,在23行中添加count=0**
**2.編譯錯誤是本身在devc++上出現的「;」忘記打,或者是將「;」輸入爲「,」**
**3.不知道怎樣一個順序,後詢問同窗,借鑑後完成**

##1.3同構數學習

**內容:**一個數剛好出如今它的平方數的右端,這個數就稱爲同構數。找出1~1000之間的所有同構數。
輸出格式:
在一行中輸出全部知足條件的同構數,每一個數輸出佔6列。沒有其它任何附加格式和字符。
輸出樣例:
     1     5     6    25    76   376   625

##1.3.1數據處理測試

**數據表達:定義一個變量i,爲循環條件。**
**數據處理:僞代碼**
定義變量
for i<-1;i<=1000;i++)
位數有個,十,百。
if(0<=i&&i<=9)個位數,即一位數
if(i==(i*i)%10)表示這些位數
輸出i
if(10<=i&&i<=99)十位數,即兩位數 
if(i==(i*i)%100)
輸出i
if(100<=i&&i<=999)百位數,即三位數
if(i==(i*i)%1000)
輸出i
if(i==1000)
當i爲1000時,顯然不是同構數,故不做斷定

##1.3.2實驗代碼截圖 ##1.3.3造測試數據 |輸入數據|輸出數據|說明| |----------|----------:|:-------| |||同構數| ##1.3.4PTA提交列表及說明 設計

**提交列表說明:**
**1.格式錯誤:我將%d後面加了6個空格,在devc++上運行是正確的,比較懵,就將空格打在%d前面**
**2.格式錯誤:詢問同窗,最終將%d改成了%6d,答案正確**

#2.代碼互評 ###同窗的代碼 ###本身的代碼 3d

**1.1.她定義了整形變量n,i,a,b,c b=n-1;c=(1+n)*n/2;循環c次輸出字符 ,若是i==n-1,則輸出換行n+=b; b--;**
**1.2.個人定義整形變量i,j,n,定義字符變量ch,令ch=‘A’,i,j爲循環條件,n爲輸入的數。**   
**2.1.她在for循環中輸入字符‘A’循環嵌套中爲for與if兩種語句**
**2.2.我運用char ch字符變量,運用兩個for語句,對字符進行輸出**

###同窗的代碼 ###本身的代碼 code

**1.1.她用了整形變量i,y,digit,sum; i用來控制循環次數,即用戶給出的找同構數的範圍, y和n,digit用來判斷數i的位數,sum用來保存i的平方。**
**1.2.我只定義一個變量i,爲循環條件。**
**2.1. 她運用for循環語句對digit初始化爲0 ,將i的平方賦值給sum ,將i賦值給n , 將整形變量n/10賦值給y ,將整形變量n/10賦值給n ,digit累加,用 switch語句,分別判斷位數不一樣的數是否符合同構數的條件,若是符合則輸出該數,而後跳出循環。** 
**2.2.我是對1000之內的數字進行分段求,有百位數,個位數等,總體感受個人要簡潔些**

#3.學習總結 ##3.1學習進度條 周/日期|這周所花的時間|代碼行|學到的知識點簡介|目前比較迷惑的問題 -------|------|-----|------|-------- 第四周|8h|20|簡單輸出|無 第五週|10h|40|學習輸入|無 第六週|20h|60|用WinGW-w64來編譯C程序|文檔真的打不開,多是電腦緣由 第七週|10h|90|關係運算,if-else語句,格式化輸入語句scanf()|有的數學邏輯問題不太懂 第八週|8.5h|80|for的循環語句,指定次數的循環程序設計|不太會文字與數學的轉換 第九周|8h|100|函數的調用和定義的初步認識|自定義函數不熟悉 第十週|10h|170|多分支結構、字符型數據類型和邏輯運算符|多個數據輸出不熟練 第十一週|11h|110|熟悉多分支結構switch語句的使用|邏輯思惟能力差 第十二週|9h|200|熟悉whlie和do-whlie結構|字符那方面不熟 第十三週|8h|180|熟悉嵌套循環,break和continue的用法|當運用到真題方面仍是會不太會 第十四周|8h|110|選擇合適的算法、合理的循環結構,熟練的編寫程序|最大的問題是不懂題意 ##3.2累積代碼行和博客字數 時間|博客字數|代碼行數 ------|-----|------- 第四周|441|20 第五週|441|20 第六週|1112|150 第七週|1800|190 第八週|2300|220 第九周|3100|220 第十週|4000|400 第十二週|4900|620 第十三週|6700|910 第十四周|7600|1020 ##3.3學習內容總結和感悟 ###3.3.1學習內容總結 ###3.3.2學習體會 1.感受仍是挺可貴,剛開始題目都看不懂 2.學習之旅長路漫漫,還得慢慢來,不會的就要搞懂 3.期末也快要到了,努力複習,抓緊時間 4.有空就多多練習練習

**補充:**
     1、輸入數字能夠用scanf輸入。
若是輸入的是整型數據,能夠用
int a;
scanf("%d",&a);
實現把輸入的數字賦值給a的效果。
相似的,若是是float, double,short,long等類型的數據,那麼就要把變量定義成對應的類型,而後使用各自的格式字符%f,%lf,%hd,%ld等進行輸入。
2、輸入單個字符。
輸入單個字符能夠用如下兩種函數。
定義char c;
1 scanf("%c", &c);
這種方法和輸入數字是相似的,%c僅讀入一個字符,並賦值給c。
2 c = getchar();
getchar函數的功能就是讀入一個字符,並以返回值形式返回。
3、輸入一串字符(以空白字符分隔)。
能夠用scanf的%s格式。
char str[100];//空間要定義足夠大
scanf("%s", str);//將字符串讀入並存在str中
四,讀入一行數據。
能夠用gets函數。gets的功能就是讀入一整行數據,以換行符爲結束。
char str[100];//一樣要足夠大的空間
gets(str);
補充,不管哪一種形式的輸入,均可以用getchar逐個輸入到字符串中,而後判斷結束符以結束輸入,再對字符串作處理。這種方法對編程水平要求比前幾種略高,代碼量也更大,但好處是徹底本身控制,更加靈活。、輸入數字能夠用scanf輸入。
若是輸入的是整型數據,能夠用
int a;
scanf("%d",&a);
實現把輸入的數字賦值給a的效果。
相似的,若是是float, double,short,long等類型的數據,那麼就要把變量定義成對應的類型,而後使用各自的格式字符%f,%lf,%hd,%ld等進行輸入。
2、輸入單個字符。
輸入單個字符能夠用如下兩種函數。
定義char c;
1 scanf("%c", &c);
這種方法和輸入數字是相似的,%c僅讀入一個字符,並賦值給c。
2 c = getchar();
getchar函數的功能就是讀入一個字符,並以返回值形式返回。
3、輸入一串字符(以空白字符分隔)。
能夠用scanf的%s格式。
char str[100];//空間要定義足夠大
scanf("%s", str);//將字符串讀入並存在str中
四,讀入一行數據。
能夠用gets函數。gets的功能就是讀入一整行數據,以換行符爲結束。
char str[100];//一樣要足夠大的空間
gets(str);
補充,不管哪一種形式的輸入,均可以用getchar逐個輸入到字符串中,而後判斷結束符以結束輸入,再對字符串作處理。這種方法對編程水平要求比前幾種略高,代碼量也更大,但好處是徹底本身控制,更加靈活。
相關文章
相關標籤/搜索