高階語言程式設計課程第六次個人作業(102400106劉鑫語)

牢香信仰玩家發表於2024-11-10

作業屬於哪個課程:https://edu.cnblogs.com/campus/fzu/2024C/
作業要求在哪裡: https://edu.cnblogs.com/campus/fzu/2024C/homework/13303
學號:102400106
姓名:劉鑫語
(1)編寫函式fun(int m, int k, int xx[]),將小於整數m的非素數存入xx陣列中,個數由k返回。

在思考判斷素數的函式要怎麼寫,已被難住
(2)編寫函式,將長度為n的字串從第m個字元開始的全部字元複製成另一個字串。

首先是對應位數嘗試了幾次,然後是輸入第幾位時沒有加&字元
(3)編寫函式用冒泡法將陣列按從小到大的順序排列。

還行
(4)將n個整數按輸入順序的逆序排列,要求應用帶指標引數的函式實現。

寫出來了但有疑問就是最後輸出逆序排列一開始並不會顯示,一定要輸了非整字元後結果才會顯示出來,ai認為是標準輸入緩衝區(stdin)的行為,但是還是不太懂
(5)寫一個函式列印arr陣列的內容,不使用陣列下標,使用指標。
不懂,查,,用指標表示陣列,可以用p++表示元素,遍歷陣列
(6)編寫程式,分別找出多個n×m陣列的最大值、最小值,並輸出兩個值的下標。

不會寫查了很多,然後瞭解i,j輸出下標,但他們從0開始所以+1
(7)判斷上三角矩陣。上三角矩陣指主對角線以下的元素都為0的矩陣;主對角線為從矩陣的左上角至右下角的連線。本題要求編寫程式,判斷一個給定的方陣是否上三角矩陣。

一開始一直報錯,檢查發現一個是函式宣告不匹配,另一個是嘗試透過ssj(
arr, n)將二維陣列arr傳遞給ssj函式。但是*arr是一個指向一維陣列的指標,而不是一個二維陣列。正確的傳遞方式是直接傳遞陣列名arr,因為陣列名本身就是一個指向陣列首元素的指標。
(8)給定一個按升序排列的二維陣列,編寫一個函式來判斷目標值是否存在於陣列中。陣列是一個m x n的矩陣,可使用演算法快速查詢。

這題思考了很久怎麼去表示中值的下標,行索引是序號/行,列索引是序號%列;
(9)編寫一個函式,輸入一個整數,將其分解為兩個質數之和。提示:函式可以宣告為int split(int n, int *a, int b)。n作為傳入引數,a和b作為傳出引數。若無法分解返回0,可以分解則返回1。

先將整數分解為兩數之和,用函式判斷兩數是否都為質數,是的話返回1,由返回值輸出可以分解(Y)或不能分解(N)
(10) 編寫函式void shift(char
s, int n),請原地將字串s迴圈左移n次。例如,字串“hello”左移3次得到“lohel”。

一開始沒有去考慮如果移動次數大於字串長度的問題
(11)寫一個程式讀入一個二維整型陣列並判斷它是否為魔方矩陣。在魔方陣中,所有的行、列和對角線都擁有相同的和。

副對角線表示有問題
(12)利用指標,判斷兩個字串是否相等。忽略大小寫。例如,輸入 “hello”和”hELlO”,認為它們是相等的。返回值:1表示相等。0表示不同)。

查了大小寫轉換的ctype.h標頭檔案中的tolower函式

相關文章