C语言—指针(2)

回原点(......?)当我没讲,好难

1. 编写函数,要求用指针做形参,实现将二维数组(行列相同)的进行转置(行列数据互换): 

...不会写

/*1. 编写函数,要求用指针做形参,实现将二维数组(行列相同)的进行转置(行列数据互换)*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>// 函数声明
void transpose(int *matrix, int n);int main() 
{int n = 3; // 假设是3x3的数组int matrix[3][3];// 初始化随机数种子srand((unsigned int)time(NULL));// 随机生成数组for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {matrix[i][j] = rand() % 100; // 生成0到99之间的随机数}}printf("原始数组:\n");for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {printf("%d ", matrix[i][j]);}printf("\n");}transpose((int *)matrix, n); // 调用函数进行转置printf("转置后的数组:\n");for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {printf("%d ", matrix[i][j]);}printf("\n");}return 0;
}// 函数定义,实现转置
void transpose(int *matrix, int n) 
{int i, j;for (i = 0; i < n; i++) {for (j = i + 1; j < n; j++) {int temp = *(matrix + i * n + j);*(matrix + i * n + j) = *(matrix + j * n + i);*(matrix + j * n + i) = temp;}}
}

虽然代码有了,但是我暂时还不是很会,留着后面补,嘿嘿先发布啦,嘿嘿嘿嘿


2 编写函数,要求用指针做形参,实现统计二维数组上三角中的0 的数量:(3*3好看0的数量)

注意:上三角包括主对角线以上的元素,不包括对角线本身。

/*2 编写函数,要求用指针做形参,实现统计二维数组上三角中的0 的数量*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>#define R 3
#define C 3//函数声明
void arr(int (*a)[C]);  //用于初始化数组
int countZeros(int (*a)[C]);  //统计上三角的0的个数int main()
{int a[R][C];srand((unsigned int)time(NULL));arr(a);printf("初始化后的数组:\n");int i = 0,j = 0;for(i = 0;i < R;i++){for(j = 0;j < C;j++){printf("%d",a[i][j]);}printf("\n");}int zeroCount = countZeros(a);  // 调用函数统计上三角中的0的数量printf("上三角中的0的数量: %d\n",zeroCount);return 0;}//函数定义 初始化数组
void  arr(int (*a)[C])
{for(int i = 0;i < R;i++){for(int j = 0;j < C;j++){a[i][j] = rand() % 2;  //生成0或1的随机数}}}//函数定义 统计上三角的0的数量
int countZeros(int (*a)[C])
{int zeroCount = 0;for(int i = 0;i < R;i++)    //循环遍历数组找出上三角的数值看是否为0,为0,进入循环,zeroCount加1{for(int j = i + 1;j < C;j++){if(a[i][j] == 0){zeroCount++;}}}return zeroCount;
}


3. 编写一个指针函数,返回二维数组中最大元素的地址。

/*3. 编写一个指针函数,返回二维数组中最大元素的地址。*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>#define R 3
#define C 3// 函数声明
int *findMaxElementAddress(int (*array)[C]);int main() {int array[R][C] = {0};// 初始化随机数发生器srand((unsigned int)time(NULL));// 随机初始化数组for (int i = 0; i < R; i++) {for (int j = 0; j < C; j++) {array[i][j] = rand() % 100; // 生成0到99之间的随机数}}// 打印随机初始化的数组for (int i = 0; i < R; i++) {for (int j = 0; j < C; j++) {printf("%d ", array[i][j]);}printf("\n");}// 调用函数找到并打印最大元素的地址和值int *maxAddress = findMaxElementAddress(array);if (maxAddress != NULL) {printf("最大元素的地址是: %p\n", maxAddress);printf("最大元素的值是: %d\n", *maxAddress);} else {printf("没有元素\n");}return 0;
}// 函数定义:返回二维数组中最大元素的地址
int *findMaxElementAddress(int (*array)[C]) 
{int INT_MIN = 0;int maxElement = INT_MIN; // 初始化为最小整数值int *maxAddress = NULL;  // 初始化地址为NULLfor (int i = 0; i < R; i++) {for (int j = 0; j < C; j++) {if (array[i][j] > maxElement) {maxElement = array[i][j];maxAddress = &array[i][j]; // 更新最大元素的地址}}}return maxAddress; // 返回最大元素的地址
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/690971.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

看小姐姐的效果棒极了,写了一个工具,逐帧解析视频转成图片,有没有带上商业思维的小伙伴一起研究下

一个突然的想法&#xff0c;促成了这个项目雏形。 原理是&#xff1a; 上传一个视频&#xff0c;自动将视频每一帧保存成图片 然后前端访问 就能实现如图效果 后端是python/flask 数据库mysql 前端uniapp 项目演示&#xff1a; xt.iiar.cn 后端代码如下&#xff1a; #学习…

【C深剖】数组名的细节

本系列博客为个人刷题思路分享&#xff0c;有需要借鉴即可。 引言&#xff1a;我想我说的这个数组名细节可能很多人并没有留意&#xff0c;现在先来C设计者这样设计也很合理。 就是数组名本质上是一个指针&#xff0c;但是这个指针的内容也就是说指向的空间是固定的&#xff0c…

unplugin-vue-components解决命名冲突

我们在vue项目中通常会利用unplugin-vue-components插件进行自定义组件的自动引入 注&#xff1a;如果不知道怎么配置unplugin-vue-components插件&#xff0c;欢迎看我整理的这篇&#xff1a; vue3项目配置按需自动引入自定义组件unplugin-vue-components 当出现同名文件时&a…

先进电机技术——感应电机与同步电机

一、感应电机 感应电机&#xff08;Induction Motor&#xff09;是一种广泛应用的交流电动机&#xff0c;其工作原理基于电磁感应定律。在感应电机中&#xff0c;定子绕组连接到电源后会因通入的交流电而产生一个旋转磁场。这个磁场在空间中是连续变化并以恒定的速度&#xff…

【医学大模型】Text2MDT :从医学指南中,构建医学决策树

Text2MDT &#xff1a;从医学指南中&#xff0c;构建医学决策树 提出背景Text2MDT 逻辑Text2MDT 实现框架管道化框架端到端框架 效果 提出背景 论文&#xff1a;https://arxiv.org/pdf/2401.02034.pdf 代码&#xff1a;https://github.com/michael-wzhu/text2dt 假设我们有一…

算法-矩阵置零

1、题目来源 73. 矩阵置零 - 力扣&#xff08;LeetCode&#xff09; 2、题目描述 给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,1,1],[1,0,1…

机器学习---规则学习(一阶规则学习、归纳逻辑程序设计)

1. 一阶规则学习 “一阶”的目的&#xff1a;描述一类物体的性质、相互关系&#xff0c;比如利用一阶关系来挑“ 更好的”瓜&#xff0c;但实际应用 中很难量化颜色、 …、敲声的属性值。一般情况下可以省略全称量词。 命题逻辑&#xff1a;属性-值数据 色泽程度&#xff1a…

CSS:BFC

BFC&#xff0c;Block Formatting Context&#xff0c;块级格式化上下文&#xff0c;是一个独立的渲染区域或隔离的独立容器&#xff0c;它决定了其子元素如何布局&#xff0c;并且与这个区域外部的元素无关。 形成 BFC 的条件 float 的值不为 none&#xff08;left、right&a…

爬虫入门一

文章目录 一、什么是爬虫&#xff1f;二、爬虫基本流程三、requests模块介绍四、requests模块发送Get请求五、Get请求携带参数六、携带请求头七、发送post请求八、携带cookie方式一&#xff1a;放在请求头中方式二&#xff1a;放在cookie参数中 九、post请求携带参数十、模拟登…

HTTPS网络通信协议基础

目录 前言&#xff1a; 1.HTTPS协议理论 1.1协议概念 1.2加密 2.两类加密 2.1对称加密 2.2非对称加密 3.引入“证书” 3.1证书概念 3.2数据证书内容 3.3数据签名 4.总结 前言&#xff1a; 了解完HTTP协议后&#xff0c;HTTPS协议是HTTP协议的升级加强版&#xff0c…

设计模式二:代理模式

1、什么是动态代理 可能很多小伙伴首次接触动态代理这个名词的时候&#xff0c;或者是在面试过程中被问到动态代理的时候&#xff0c;不能很好的描述出来&#xff0c;动态代理到底是个什么高大上的技术。不方&#xff0c;其实动态代理的使用非常广泛&#xff0c;例如我们平常使…

unity 使用VS Code 开发,VS Code配置注意事项

vscode 对应的插件&#xff08;unity开发&#xff09; 插件&#xff1a;.Net Install Tool,c#,c# Dev Kit,IntelliCode For C# Dev Kit,Unity,Unity Code Snippets 本人现在是用了这些插件 unity需要安装Visual Studio Editor 1、.Net Install Tool 设置 需要在设置里面配置…

jvm gc日志拿取与分析思路

前言 参考文章:Java中9种常见的CMS GC问题分析与解决 - 美团技术团队 排查过程 进入容器里 生产应用是跑在docker上的&#xff0c;所以需要先进入到应用里面去&#xff0c;步骤如下 1. docker ps 找到对应的应用id&#xff0c;比如 zxc 2. 进入容器内部 docker exec -it 7690…

Elasticsearch:什么是搜索引擎?

搜索引擎定义 搜索引擎是一种软件程序或系统&#xff0c;旨在帮助用户查找存储在互联网或特定数据库中的信息。 搜索引擎的工作原理是对各种来源的内容进行索引和编目&#xff0c;然后根据用户的搜索查询向用户提供相关结果列表。 搜索引擎对于希望快速有效地查找特定信息的用…

怎么清理mac系统缓存系统垃圾文件 ?怎么清理mac系统DNS缓存

很多使用苹果电脑的用户都喜欢在同时运行多个软件&#xff0c;不过这样会导致在运行一些大型软件的时候出现不必要的卡顿现象&#xff0c;这时候我们就可以去清理下内存&#xff0c;不过很多人可能并不知道正确的清内存方式&#xff0c;下面就和小编一起来看看吧。 mac系统是一…

读十堂极简人工智能课笔记07_模拟与情感

1. 数码式考察 1.1. 制作计算机动画或游戏 1.1.1. 想怎么制作都可以 1.2. 计算机模拟 1.2.1. 目标是建造一个虚拟的实验室&#xff0c;其行为与现实完全一致&#xff0c;只是某些变量由我们来控制 1.3. 对现实世界进行建模并不容易&#xff0c;需要非常谨慎地收集和使用数…

Vscode vim 插件使用Ctrl+C和V进行复制粘贴到剪切板

Vscode vim 插件使用CtrlC和V进行复制粘贴到剪切板 使用这一个插件的时候复制粘贴和其他软件互动的时候体验不好, 并且不可以用Ctrl c, Ctrl v很不爽 "vim.commandLineModeKeyBindings": [{"before" : ["Ctrl", "c"],"after&q…

httpd apache

虚拟主机 配置环境 [rootlocalhost ~]#cd /var/www/html/ [rootlocalhost html]#mkdir 123 [rootlocalhost html]#mkdir abc [rootlocalhost html]#ls 123 abc [rootlocalhost html]#cd 123/ [rootlocalhost 123]#echo 123 > index.html [rootlocalhost 123]#cd ../abc/ […

泰山派摄像头使用-opencv流程

1. 泰山派添加camera 连接摄像头连接到usb接口,查看dev设备: # 在终端中输入如下命令&#xff0c;可以查看到camera设备资源&#xff1a; ls /dev/video* 检查板卡上的camera设备资源示例 也可以使用v4l2命令查看 v4l2-ctl --list-devices v4l2-ctl --list-devices是一个命令…

CentOS上如何配置手动和定时任务自动进行时间同步

场景 Linux(Centos)上使用crontab实现定时任务(定时执行脚本)&#xff1a; Linux(Centos)上使用crontab实现定时任务(定时执行脚本)_centos 定时任务-CSDN博客 Winserver上如何配置和开启NTP客户端进行时间同步&#xff1a; Winserver上如何配置和开启NTP客户端进行时间同步…