选择问题1
来源:互联网 发布:手机淘宝上架图片尺寸 编辑:程序博客网 时间:2024/06/03 21:32
任务和代码:对于任意一串数字,输出第k大的数
/*文件名:main.c作者:小风景完成日期:2016.7.31问题描述:对于任意一串数字,输出第k大的数程序输出:*/#include <stdio.h>#include <malloc.h>#include <stdlib.h>void sortnumber(int *a,int k);void insertnumber(int *a,int k,int number);int main(){ int number = 0; int k = 0; int *p = NULL; printf("请输入要查询的数据元素个数:"); scanf("%d",&number); //清空缓存,防止影响下一次的输入 fflush(stdin); printf("请输入%d个数据元素:",number); //先将输入的数据读入到数组中保存起来,防止在输入途中断电,缓存中数据不能保留 int a[number] = {0}; int i = 0; for(i = 0;i < number;i++) { scanf("%d",&a[i]); } fflush(stdin); printf("您需要查询第几大的数:"); scanf("%d",&k); p = (int *)malloc(k * sizeof(int)); //为指针动态分配空间 //对于需要查询的数据所处的位数不能大于数据的总数 if(k > number) { printf("您的输入不正确!\n"); free(p); exit(1); } //先将需要查询的前k个数输入到指针所指向的空间中 for(i = 0;i < k;i++) { *(p + i) = a[i]; } //将指针中的数据进行排序 sortnumber(p,k); //依次传入后续的数据并且将其与指针所指向的内容进行比较 for(i = k;i < number;i++) { insertnumber(p,k,a[i]); } //释放分配的空间,输出结果 printf("第%d大的数是:%d",k,*(p + k - 1)); free(p); return 0;}/*函数功能:使用冒泡排序对指针指向的空间数据进行排序*/void sortnumber(int *a,int k){ int i = 0; int j = 0; int temp = 0; for(i = 0;i < k - 1;i++) { for(j = 0;j < k - i - 1;j++) { if(*(a + j + 1) > *(a + j)) { temp = *(a+j+1); *(a+j+1) = *(a + j); *(a+j) = temp; } } }}/*函数功能:比较第k个数与number,如果满足条件,将其插入*/void insertnumber(int *a,int k,int number){ int i = 0; int j = 0; if(*(a + k - 1) > number) { return; } else if(*a < number) { //将number放到第一位,然后后面的数字向后移位; for(i = k - 1;i >0;i--) { *(a + i) = *(a + i - 1); } *a = number; return; } //如果number大于数组中第i位数,将i位开始的数往后移位,将最后的数挤出数组,将number替换a[i]。 for(i = 1;i < k;i++) { if(number > *(a + i)) { for(j = k - 1;j > i;j--) { *(a + j) = *(a + j - 1); } *(a + i)= number; return; } }}
程序运行结果:
0 0
- 选择问题1
- 选择问题
- 选择问题
- 选择问题
- 选择问题
- 选择问题
- 选择问题
- 选择问题
- 选择问题
- 选择问题
- 选择问题
- 选择问题
- 选择问题
- 学习理论-模型选择-1-问题引入
- TreeView节点选择问题
- DropDownList选择问题
- word2007 鼠标选择问题
- 元素选择问题
- 1096 A+B for Input-Output Practice (VIII)
- Flume+Hadoop+Hive的离线分析系统基本架构
- 字典树题目
- 新手Android学习笔记 05——IllegalStateException非法异常之一
- 文件包含漏洞
- 选择问题1
- 前端学习 HTML标签
- POJ 1258 Agri-Net
- Json数据格式(转载)
- Multiplication Table
- RESTful软件架构风格解疑
- 【HDU】5532 - Almost Sorted Array(LIS)
- Android 开始一个activity的同时保留导航
- Android 事件分发机制