杨辉三角形编程与随机数去重排序实践
版权申诉
171 浏览量
更新于2024-08-26
收藏 221KB PDF 举报
在2021年11月25日的学习总结中,主要讨论了两个编程问题,一个是输出杨辉三角形,另一个是实现YRZ学长的随机数去重和排序功能。
首先,关于输出杨辉三角形,该问题要求编写一个C语言程序来打印前n行的三角形。杨辉三角是一种经典的数学图形,每一行的数字由上一行的相邻元素相加得到。程序的关键在于初始化数组,设置对角线和第一列的值为1,然后从第三行开始使用两层嵌套循环计算其他元素。通过`printf`函数以5位宽度输出数组中的每个元素,并在每行结束时换行。要改变输出的行数,只需修改数组的大小并将变量n替换为所需的行数。
下面是关键代码片段:
```c
int a[20][20];
...
for(i=2;i<10;i++) // 从第3行开始处理
{
for(j=1;j<=i-1;j++)
{
a[i][j] = a[i-1][j-1] + a[i-1][j];
}
}
```
其次,YRZ学长需要生成一组不重复的随机数并进行排序。这个问题涉及两个步骤:生成随机数列表和去重并排序。为实现这一目标,创建了一个长度为1100的数组`a[]`用于存储随机数,初始值都设为0。输入部分包含随机数的数量N以及这组随机数。输出部分包括不重复数的数量M以及按升序排列的不重复数列表。
核心代码段如下:
```c
inta[1100] = {0};
...
for(i = 0; i < N; i++) // 读取输入的随机数
{
scanf("%d", &a[i]);
if (a[i] > 1000 || a[i] <= 0) break; // 检查范围
}
// 去重和排序
sort(a, a + N); // 使用内置排序函数或自定义排序算法
int count = unique(a, a+N); // 计算不重复元素数量
printf("%d\n", count);
printf("%d ", a[0]); // 输出第一个不重复数
for(int i = 1; i < count; i++)
{
printf("%d ", a[i]);
}
printf("\n");
```
总结来说,这份学习总结涵盖了C语言编程基础,包括数组操作、循环结构以及排序算法的应用,有助于提升编程实践能力和理解数学规律在编程中的应用。
2021-12-01 上传
2021-12-01 上传
2021-12-01 上传
2021-12-03 上传
2021-12-04 上传
2021-12-01 上传
2021-12-03 上传
2021-12-01 上传
一诺网络技术
- 粉丝: 0
- 资源: 2万+
最新资源
- Android圆角进度条控件的设计与应用
- mui框架实现带侧边栏的响应式布局
- Android仿知乎横线直线进度条实现教程
- SSM选课系统实现:Spring+SpringMVC+MyBatis源码剖析
- 使用JavaScript开发的流星待办事项应用
- Google Code Jam 2015竞赛回顾与Java编程实践
- Angular 2与NW.js集成:通过Webpack和Gulp构建环境详解
- OneDayTripPlanner:数字化城市旅游活动规划助手
- TinySTM 轻量级原子操作库的详细介绍与安装指南
- 模拟PHP序列化:JavaScript实现序列化与反序列化技术
- ***进销存系统全面功能介绍与开发指南
- 掌握Clojure命名空间的正确重新加载技巧
- 免费获取VMD模态分解Matlab源代码与案例数据
- BuglyEasyToUnity最新更新优化:简化Unity开发者接入流程
- Android学生俱乐部项目任务2解析与实践
- 掌握Elixir语言构建高效分布式网络爬虫