diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 78807c9..25c1866 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -80,7 +80,7 @@ } } ], - "currentTab": 4 + "currentTab": 3 } ], "direction": "vertical" @@ -147,13 +147,12 @@ "state": { "type": "outline", "state": { - "file": "YueQian/Homework/1-29.md", "followCursor": true, "showSearch": false, "searchQuery": "" }, "icon": "lucide-list", - "title": "1-29 的大纲" + "title": "大纲" } }, { @@ -305,9 +304,13 @@ "remotely-save:Remotely Save": false } }, - "active": "5d8214f251dfc58d", + "active": "55c82e03f06c4fa8", "lastOpenFiles": [ "YueQian/Homework/1-29.md", + "YueQian/Homework/assets/1-29/file-20260129202925505.png", + "YueQian/Homework/assets/1-29/file-20260129201415992.png", + "YueQian/Homework/assets/1-29", + "YueQian/Homework/assets", "YueQian/相关网站.md", "Diary/2026-1/2026-1-29 周四.md", "YueQian/Homework/~WRL0001.tmp", @@ -318,8 +321,6 @@ "YueQian/Homework/~WRL0003.tmp", "YueQian/Homework/~WRD0002.tmp", "YueQian/Homework/~WRL1582.tmp", - "YueQian/Homework/~WRD1582.tmp", - "YueQian/Homework/~WRL3055.tmp", "Diary/2026-1/2026-1-28 周三.md", "Collection/连~都忘记了的小知识.md", "Excalidraw/Drawing 20260122.md", @@ -342,7 +343,6 @@ "Diary/2026-1/2026-1-19 周一.md", "Collection/PID控制算法.md", "Collection/linux命令.md", - "README.md", "Excalidraw/Untitled.canvas", "Article/Studyroad/vivado_ip_img/IPCore10.png", "Article/Studyroad/vivado_ip_img/IPCore07.png", @@ -352,8 +352,6 @@ "Article/Studyroad/vivado_ip_img/IPCore02.png", "Article/Studyroad/vivado_ip_img/IPCore03.png", "Article/Studyroad/vivado_ip_img/IPCore17.png", - "Article/Studyroad/vivado_ip_img/IPCore04.png", - "Article/Studyroad/vivado_ip_img/IPCore14.png", "YueQian/Homework/未命名.canvas", "Excalidraw/未命名.canvas", "未命名.canvas" diff --git a/YueQian/Homework/1-29.md b/YueQian/Homework/1-29.md index 4c60400..b9f5c98 100644 --- a/YueQian/Homework/1-29.md +++ b/YueQian/Homework/1-29.md @@ -5,30 +5,160 @@ tags: aliases: empty 日期: 2026/1/29 --- -1. 定义一个长度为10的数组并从键盘输入10个整数对数组进行赋值,并实现下列功能 - 1. 判定该数组是否有序 - 2. 若无序则将数组中的数据进行排序 - 3. 找出数组中是否存在众数并输出结果 - ```c - - ``` -2. 定义一个二维数组存储一个3x3的矩阵,实现如下功能 - 1. 计算矩阵对角元素的和 - 2. 判断矩阵是否是对称矩阵 - ```c - - ``` -3. 小张作为公司的HR设计了一个年会游戏,来观察员工的团队协作能力、测试员工在压力下的决策能力,寻找潜在的项目领导者,现在有N名员工参与并围坐一圈,游戏规则如下: - - 从某位员工开始顺时针报数 - - 报到数字M的倍数员工被淘汰出局 - - 从下一位员工继续报数,重复步骤2 - - 游戏继续直到只剩下K名员工(获胜者) - ```c - - ``` -4. 小刘作为公司的技术骨干编写了一个程序,帮助他每次都能处在胜利者中并最终获得晋升资格,请你使用C语言编程复现小刘的程序实现以下功能: - - 输入总人数N、报数间隔M和获胜人数K - - 计算并输出安全的座位位置(最后剩下的K人) - ```c - - ``` \ No newline at end of file +**1.定义一个长度为10的数组并从键盘输入10个整数对数组进行赋值,并实现下列功能** +1. 判定该数组是否有序 +2. 若无序则将数组中的数据进行排序 +3. 找出数组中是否存在众数并输出结果 +```c +#include + +void bubble_sort(int arr[],int lenth) +{ + for(int i = 0;i < lenth;i++){ + for(int j = i+1;j < lenth;j++){ + if(arr[i] > arr[j]){ + arr[i] ^= arr[j]; + arr[j] ^= arr[i]; + arr[i] ^= arr[j]; + } + } + } +} + +int sort_check(int arr[],int lenth) +{ + int count = 0,fcount=0; + for(int i=0,j=1;i= arr[j]) + count++; + if(arr[i] <= arr[j]) + fcount++; + } + if(count == lenth-1 || fcount == lenth-1) + return 1; + else + return 0; +} + +void find_mode(int arr[], int length) +{ + int count[10] = {0}; + int max_freq = 1; + + for (int i = 0; i < length; i++) { + if (count[i] != -1) { + int freq = 1; + for (int j = i + 1; j < length; j++) { + if (arr[i] == arr[j]) { + freq++; + count[j] = -1; + } + } + count[i] = freq; + if (freq > max_freq) { + max_freq = freq; + } + } + } + printf("数组众数结果:"); + int has_mode = 0; + for (int i = 0; i < length; i++) { + if (count[i] == max_freq) { + if (has_mode) printf("、"); + printf("%d(出现%d次)", arr[i], max_freq); + has_mode = 1; + } + } + if (max_freq == 1) { + printf("所有元素均仅出现1次,无有效众数\n"); + } else { + printf("(最大频次:%d)\n", max_freq); + } +} +int main(int argc, char const *argv[]) +{ + int arr[10]; + int mode; + printf("输入10个数:"); + for(int i=0;i<10;i++) + scanf("%d",&arr[i]); + if(sort_check(arr,10)) + printf("已排序\n"); + else{ + printf("未排序\n"); + bubble_sort(arr,10); + printf("排序后为:"); + for(int i=0;i<10;i++) + printf("%d ",arr[i]); + printf("\n"); + } + find_mode(arr,10); + return 0; +} +``` +![700](assets/1-29/file-20260129201415992.png) +**2.定义一个二维数组存储一个3x3的矩阵,实现如下功能** +1. 计算矩阵对角元素的和 +2. 判断矩阵是否是对称矩阵 +```c +#include + +#define ROW 3 +#define COL 3 + +int calcDiagSum(int matrix[ROW][COL]) +{ +    int sum = 0; +    for (int i = 0; i < ROW; i++) { +        sum += matrix[i][i]; +    } +    return sum; +} + +int isSymmetricMatrix(int matrix[ROW][COL]) +{ +    for (int i = 0; i < ROW; i++) { +        for (int j = 0; j < COL; j++) { +            if (matrix[i][j] != matrix[j][i]) { +                return 0; +            } +        } +    } +    return 1; +} + +int main(int argc, char const *argv[]) +{ +    int matrix[ROW][COL]; +    printf("请输入3x3矩阵的9个整数:\n"); +    for (int i = 0; i < ROW; i++) { +        for (int j = 0; j < COL; j++) { +            scanf("%d", &matrix[i][j]); +        } +    } + +    int diagSum = calcDiagSum(matrix); +    printf("\n矩阵主对角线元素的和为:%d\n", diagSum); +    if (isSymmetricMatrix(matrix)) +        printf("该3x3矩阵是对称矩阵\n"); +    else +        printf("该3x3矩阵不是对称矩阵\n"); + +    return 0; +} +``` +![700](assets/1-29/file-20260129202925505.png) +**3.小张作为公司的HR设计了一个年会游戏,来观察员工的团队协作能力、测试员工在压力下的决策能力,寻找潜在的项目领导者,现在有N名员工参与并围坐一圈,游戏规则如下:** +- 从某位员工开始顺时针报数 +- 报到数字M的倍数员工被淘汰出局 +- 从下一位员工继续报数,重复步骤2 +- 游戏继续直到只剩下K名员工(获胜者) +```c + +``` +**4.小刘作为公司的技术骨干编写了一个程序,帮助他每次都能处在胜利者中并最终获得晋升资格,请你使用C语言编程复现小刘的程序实现以下功能:** +- 输入总人数N、报数间隔M和获胜人数K +- 计算并输出安全的座位位置(最后剩下的K人) +```c + +``` \ No newline at end of file diff --git a/YueQian/Homework/assets/1-29/file-20260129201415992.png b/YueQian/Homework/assets/1-29/file-20260129201415992.png new file mode 100644 index 0000000..4048b9c Binary files /dev/null and b/YueQian/Homework/assets/1-29/file-20260129201415992.png differ diff --git a/YueQian/Homework/assets/1-29/file-20260129202925505.png b/YueQian/Homework/assets/1-29/file-20260129202925505.png new file mode 100644 index 0000000..e8fb6ac Binary files /dev/null and b/YueQian/Homework/assets/1-29/file-20260129202925505.png differ