C語言I博客作業10


這個作業屬於哪個課程 C語言程序設計II
這個作業要求在哪里 C語言I博客作業10
我在這個課程的目標是 熟悉代碼的編程,設計出一個小程序,能夠正常運行並且能夠擁有一定用戶
這個作業在哪個地方具體方面幫助我實現目標 選擇合適的算法、合理的循環結構,熟練的編寫程序
參考文獻 同構數 long函數 abs函數 時間復雜度和空間復雜度

1.PTA實驗作業

1.題目名(輸出三角形字符陣列 )

本題要求編寫程序,輸出n行由大寫字母A開始構成的三角形字符陣列。
輸入格式:
輸入在一行中給出一個正整數n(1≤n<7)。
輸出格式:
輸出n行由大寫字母A開始構成的三角形字符陣列。格式見輸出樣例,其中每個字母后面都有一個空格。
輸入樣例:

4

輸出樣例:

A B C D 
E F G 
H I 
J 

1.1.1數據處理

數據表達:用到了三個整型變量,n用來作為題目的輸入值,i代表行,j代表列;用到了字符型變量c,c用來賦值字符
數據處理:偽代碼


#include<stdio.h> //頭文件
int main()       //函數名
{
    int n,i,j;  //定義三個整型變量
    char c;    //定義字符型變量 c
    c = 'A';   //給變量c賦值A
    scanf("%d", &n);
    for(i=1;i<=n;i++)  //進行行的循環
    {
        for(j=i;j<=n;j++)  //進行列的循環
        {
            printf("%c ", c); //打印字符
            c++;   //字符自增
        }
        printf("\n");  //輸出換行
    }
    return 0;
}

1.1.2實驗截圖代碼

1.1.3造測試數據

輸入數據 輸出數據 說明
4 能形成三角形
3 能形成三角形
5 能形成三角形

1.1.4 PTA提交列表及說明

說明:
Q1:多種錯誤
A1:編譯代碼錯誤,格式錯誤,改用了字符型變量編寫代碼

1.2題目名(梅森數)

形如2
​n
​​−1的素數稱為梅森數(Mersenne Number)。例如2
​2
​​−1=3、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數據處理

數據表達:用到了四個整型變量 num用來表示素數,n表示輸入值次方,i,j用來循環,count用來計數梅森數
數據處理:偽代碼

#include<stdio.h> //頭文件
#include<math.h> //該編程中用到了數學
int main()   //函數名
{
    int num,n,i,j,count=0;  //定義四個整型變量
    scanf("%d",&n);
    for(i=2;i<=n;i++)      //進行循環
	{
       num=pow(2,i)-1;     //表示素數
       for(j=2;j<=sqrt(num);j++)   //進行循環
       if(num % j==0) break;     //如果為假,則跳出循環
       if(j>sqrt(num))      //  判斷是否為梅森數
	    {
        printf("%d\n",num);  //打印梅森數
        count++;    //梅森數自增
        }
    }
    if(count==0)     //沒有梅森數
	printf("None");   //輸出 None
return 0;
}

1.2.2實驗截圖代碼

1.2.3造測試數據

輸入數據 輸出數據 說明
4 梅森數為3,7
5 梅森數為3,7,31
6 梅森數為3,7,31

1.2.4PTA提交列表及說明


說明:Q1:編譯錯誤
A1:代碼書寫不正確,循環的嵌套沒有使用好,處理素數開始直接寫的pow(2,i)-1,后來將pow(2,i)-1復制給了num

1.3題目名

一個數恰好出現在它的平方數的右端,這個數就稱為同構數。找出1~1000之間的全部同構數。
輸出格式:
在一行中輸出所有滿足條件的同構數,每個數輸出占6列。沒有其它任何附加格式和字符。
輸出樣例:

     1     5     6    25    76   376   625

1.3.1數據處理

數據表達:用到了長整型變量a,b,for循環和if語句的嵌套
數據處理:偽代碼

#include<stdio.h>   //頭文件
int main()     //函數名
{
    long a,b;   //定義兩個長整型變量
    for(a=1,b=0;a<1000;a++)   //進行循環
    {
    b=a*a;       //  判斷同構數(一個數恰好出現在它的平方數的右端)
    if(b%10==a||b%100==a||b%1000==a)   //找出1~1000中所有的同構數
    printf("%6d",a);   //打印所有的同構數並按照每個數輸出占六個空格的形式
    }
   return 0;
}


1.3.2實驗截圖代碼

1.3.3造測試數據

輸入數據 輸出數據 說明
1 5 6 25 76 376 625

1.3.4 PTA提交列表及說明

說明:Q:編譯錯誤
A:沒有注意每個數輸出占6列,代碼思路也沒有弄清晰

2代碼互評

1.同學代碼截圖

2.自己代碼截圖

說明:1.他是先定義了整型變量最后轉換為字符型輸出,而我是從一開始就直接定義了字符型變量,並用字符型變量直接賦值
2.我的代碼比他的更加簡單

3.同學代碼截圖

4.自己代碼截圖

說明:1.該同學先寫出來當值為1時輸出None,然后進行初始輸入值為2的循環,而我是初始值賦為2進行循環判斷有無梅森數
2.我和他用的的判斷方法不同,他是用余數判斷,而我的用到了根式判斷

3.學習總結

3.1學習進度條

周/日期 這周所花的時間 代碼行 學到的知識簡介 目前比較迷惑的問題
4/2019.9.21 7個小時 50 編程“hello word” 初次接觸對代碼很迷惘,不知道表示的是什么意思
5/2019.10.2 8個小時 100 安裝gcc編譯器,將代碼建在自己的文件里 如何安裝的程序不明白
7/2019.10.11 10個小時 200 三種表達式,printf流程和scanf流程,if-else語句 scanf流程還是不太明白
8/2019.10.17 20個小時 350 使用for循環語句數的循環程序設計 for循環語句的結構還是有點困惑
9/2019.10.25 25個小時 550 使用while語句循環,自定義函數,參數 自定義函數還是·不太明白
10/2019.11.1 20個小時 700 熟悉多分支結構、字符型數據類型和邏輯運算符 關於字符型的代碼還是不太明白
11/2019.11.7 15個小時 1000 熟悉多分支結構switch語句的使用 對swith語句的使用還有一定的困惑
12/2019.11.15 14個小時 1200 熟悉使用while和do-while結構解決問題 對while語句的使用還有一定的疑惑
13/2019.11.21 15個小時 1450 熟悉break、continue的使用,熟悉使用循環的嵌套解決問題 對continue的使用不夠熟練,還有很大疑惑
14/2019.11.28 20個小時 1660 選擇合適的算法、合理的循環結構,熟練的編寫程序 對字符型函數和abs函數還不是太懂

3.2 累積代碼行和博客字數

3.3 學習內容總結和感悟

3.3.1 學習內容總結

請用思維導圖的形式將到目前為止所學的內容進行整理

3.3.2學習體會

代碼越來越難了,這次通過寫代碼,查閱資料,接觸到了新的函數,新的long函數和abs函數還需要自己多花點時間去琢磨琢磨,感覺代碼的世界越來越奧妙了,自己還有很多要學的地方;
感覺時間很不夠用,最近作業很多,事情也很多,有時候走在路上,腦子里面想的都是代碼,走路時候手機看的也是代碼,還是感覺自己的悟性還不夠,還需要加大自學的力度,抓住空閑的時間


免責聲明!

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



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