高级语言程序设计课程第六次个人作业
这个作业属于哪个课程:https://edu.cnblogs.com/campus/fzu/2024C
这个作业要求在哪里:https://edu.cnblogs.com/campus/fzu/2024C/home
学号:102400124
姓名:邱语堂
(1)编写函数fun(int m, int *k, int xx[]),将小于整数m的非素数存入xx数组中,个数由k返回。
自定义函数遍历所有小于m的正整数并判断是否为素数;每次将一个非素数存入数组中,循环k次实现。
(2)编写函数,将长度为n的字符串从第m个字符开始的全部字符复制成另一个字符串。
判断原本字符串所提供的能覆盖的长度n-m与新字符串长度length大小
(3)编写函数用冒泡法将数组按从小到大的顺序排列。
(4)将n个整数按输入顺序的逆序排列,要求应用带指针参数的函数实现。
(5)写一个函数打印arr数组的内容,不使用数组下标,使用指针。
*(number+i)和number[i]是一致的。
(6)编写程序,分别找出多个n×m数组的最大值、最小值,并输出两个值的下标。
采用随机数函数生成指定数量的数,并用指针寻找最大最小值以及对应的下标。
(7)判断上三角矩阵。上三角矩阵指主对角线以下的元素都为0的矩阵;主对角线为从矩阵的左上角至右下角的连线。本题要求编写程序,判断一个给定的方阵是否上三角矩阵。
上三角行矩阵判断方法:
对于i行j列的元素,j<i的所有元素都位于下三角形,若均等于0,则判断是,反之不是。
(8)给定一个按升序排列的二维数组,编写一个函数来判断目标值是否存在于数组中。数组是一个m x n的矩阵,可使用算法快速查询。
(9)编写一个函数,输入一个整数,将其分解为两个质数之和。提示:函数可以声明为int split(int n, int *a, int *b)。n作为传入参数,a和b作为传出参数。若无法分解返回0,可以分解则返回1。
自定义函数判断是否为素数,遍历所有小于等于n/2的正整数。
使用指针在指定的变量地址中进行运算。
(10) 编写函数void shift(char* s, int n),请原地将字符串s循环左移n次。例如,字符串“hello”左移3次得到“lohel”。
将str[0]放到temp中,然后str除最后一位元素以外的每一位赋后一位的值,再将temp的值赋给最后一位元素,实现了数组元素向前进一位。
(11)写一个程序读入一个二维整型数组并判断它是否为魔方矩阵。在魔方阵中,所有的行、列和对角线都拥有相同的和。
创建行数组、列数组储存每一行与每一列的和,并依次和两条对角线的和做比较,若不相等,则不是魔方矩阵。
(12)利用指针,判断两个字符串是否相等。忽略大小写。例如,输入 “hello”和”hELlO”,认为它们是相等的。返回值:1表示相等。0表示不同)。
先统一字母大小写,若是大写字母则均+32改为小写字母,
思考:
将数组向前移动一位的实现:
将str[0]放如数组temp中,然后str除了最后一位元素以外的每一位赋后一位的值,即str[1]=str[i+1],再将temp的值赋给最后一位元素,实现了数组所有元素向前进一位。
二维数组大小需要根据用户决定的情况:
先自定义一个较大的常数N,令二维数组初始化为NN,再根据用户输入对后续矩阵进行调整。
判断魔方矩阵:
对于NN的数组,一共有N行N列以及两条对角线,因此需要创建行数组、列数组储存每一行与每一列的和,并依次和两条对角线的和做比较。
利用指针,判断两个字符串是否相等:
同意字母大小写后,两个指针分别指向数组的首元素,while判断当两个指针指向的地址中的内容相等则继续循环,直至读取完所有元素,字符型数组以'\0'结尾,当两个指针变量都是'\0'时return 1,代表两条字符串相等。
使用指针打印数组
*(number+i)和number[i]两个操作是等价的。