杨辉三角形编程与随机数去重排序实践
版权申诉
96 浏览量
更新于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-03 上传
2023-09-02 上传
2023-07-29 上传
2023-07-27 上传
2024-11-03 上传
2023-08-20 上传
2023-08-27 上传
一诺网络技术
- 粉丝: 0
- 资源: 2万+
最新资源
- Java+Servlet+API说明文档
- spring中文版教程
- Discrete time model and algorithm for container yard crane scheduling.pdf
- ARM公司的AMBA总线规范
- C++Builder6.0界面实例开发
- C++Programming
- 我的操作系统实验-银行家算法
- java字符反转代码
- Linux初学者入门优秀教程
- 手机号码和email校验的Js代码
- NAND FLASH PMON烧写指南
- 09版三级网络技术上级100题
- voip详细原理说明
- 软件集成测试工作指南
- JAVASCRIPT真经
- SAP 常用数据表 列表 开发人员的必备资料哦