当前位置: 首页 > news >正文

C44-练习

一 练习一:函数、数组及指针三者结合

  1. 题目:函数封装实现数组初始化、遍历
  • 代码示例:
#include <stdio.h>//封装函数:用于数组初始化
void InitArry(int *arr,int len) //定义一个整型的指针变量,用于接收地址
{int i;for(i=0;i<len;i++){printf("请输入第%d个元素:\n",i+1);scanf("%d",arr++);}
}//封装函数:用于打印数组
void PrintArry(int *arr,int len)
{   int i;putchar('\n');for(i=0;i<len;i++){printf("第%d个元素是:%d\n",i+1,*arr++);}
}int main()
{int arry[5];int len;len=sizeof(arry)/sizeof(arry[0]);//调用函数:用于数组初始化InitArry((int *)arry,len);    //通过数组名或数组首元素,将地址作为实参传入封装函数中//调用函数:用于打印数组PrintArry((int *)arry,len);return 0;
}
  • 成果展示:

image-20250517181734614

  • 报错与总结:

直接将所取的地址作为实参传到指针类型形参中,导致类型不兼容image-20250517182158282

修改方法:强制转换或直接用数组名这个指针image-20250517182331200

二 练习二:数组翻转

  • 题目:将数组中的n个元素按逆序存放然后输出
  • 算法概述:交换数组的首位元素和末位元素,分别依次向右和向左偏移,该算法通用于数组里含有奇数个和偶数个元素.
  • 代码示例:
#include <stdio.h>//封装函数:用于数组初始化
void InitArry(int *arr,int len) //定义一个整型的指针变量,用于接收地址
{int i;for(i=0;i<len;i++){printf("请输入第%d个元素:\n",i+1);scanf("%d",arr++);}
}//封装函数:用于逆序存放数组的元素
void ReverseArry(int *arr,int len)
{int i,j;int temp;for(i=0;i<len/2;i++){j=len-1-i;temp=*(arr+i);*(arr+i)=*(arr+j);*(arr+j)=temp;}
}//封装函数:用于打印数组
void PrintArry(int *arr,int len)
{   int i;putchar('\n');for(i=0;i<len;i++){printf("第%d个元素是:%d\n",i+1,*arr++);}
}int main()
{int arry[5];int len;len=sizeof(arry)/sizeof(arry[0]);//调用函数:用于数组初始化InitArry((int *)arry,len);    //通过数组名或数组首元素,将地址作为实参传入封装函数中//调用函数:用于打印正序存放的数组printf("\n这是正序打印:");PrintArry((int *)arry,len);//调用函数:用于逆序存放数组的元素ReverseArry((int *)arry,len);//调用函数:用于打印逆序存放的数组printf("\n这是逆序打印:");PrintArry((int *)arry,len);return 0;
}
  • 成果展示:

image-20250518190435682

  • 报错与总结:无
http://www.xdnf.cn/news/518815.html

相关文章:

  • 全基因组关联研究揭示了脑淋巴活动的机制
  • Rstudio换皮:自定义彩虹括号与缩进线
  • Python Requests库完全指南:从入门到精通
  • 《C语言中的传值调用与传址调用》
  • 多头自注意力机制—Transformer模型的并行特征捕获引擎
  • 如何畅通需求收集渠道,获取用户反馈?
  • c++多线程debug
  • 【android bluetooth 协议分析 01】【HCI 层介绍 6】【WriteLeHostSupport命令介绍】
  • 2.1.2
  • WaterStamp —— 一个实用的网页水印生成器开发记
  • 系统启动时开启选择内核菜单
  • ctf 基础
  • tauri2项目动态添加 Sidecar可行性方案(运行时配置)
  • 机器学习-人与机器生数据的区分模型测试 - 模型融合与检验
  • 关于机器学习的实际案例
  • C++学习:六个月从基础到就业——C++20:概念(Concepts)
  • ZZW-OCCT
  • OpenAI深夜发布Codex:AI编程里程碑式突破
  • 一:操作系统之操作系统结构
  • VS Code 开启mcp控制本地的redis
  • React 19中如何向Vue那样自定义状态和方法暴露给父组件。
  • 【方法论】金字塔内部的结构
  • 一文讲清 AWS IAM涉及的核心概念!
  • 【HALCON】 算子详解:create_local_deformable_model_xld 的全方位解读
  • 程序代码篇---ESP32的数据采集
  • 2025.5.12-2025.5.18:开始练习英语口语
  • AGI大模型(25):LangChain提示词模版
  • 辨析Spark 运行方式、运行模式(master)、部署方式(deploy-mode)
  • 网络流算法
  • Hugo安装Stack主题