高级语言程序设计课程第六次个人作业(102400106刘鑫语)
作业属于哪个课程: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函数