基础练习 数列特征
来源:互联网 发布:个人时间规划软件 编辑:程序博客网 时间:2024/06/05 15:08
问题描述
给出n个数,找出这n个数的最大值,最小值,和。
输入格式
第一行为整数n,表示数的个数。
第二行有n个数,为给定的n个数,每个数的绝对值都小于10000。
输出格式
输出三行,每行一个整数。第一行表示这些数中的最大值,第二行表示这些数中的最小值,第三行表示这些数的和。
样例输入
5
1 3 -2 4 5
样例输出
5
-2
11
数据规模与约定
1 <= n <= 10000。
循环并求和,求和可以在输入的过程中完成,找出最大值与最小值可在获取输入的时候完成,也可以对数组进行排序。
PS:提交结果,第一种方法有两个测试用例用了15ms,而第二种方法所有测试用例使用时间均为0ms(属于快排的胜利)。当然,比赛的时候通常是想到什么写什么,哪有时间考虑那么多呢。
在输入过程中找出最大最小值
#include<stdio.h>int main(){ int n, i, max, min, sum; scanf("%d", &n); int list[n]; scanf("%d", &list[0]); sum = list[0]; max = list[0], min = list[0]; for(i = 1; i < n; i++){ scanf("%d", &list[i]); sum += list[i]; if(max < list[i]) max = list[i]; if(min > list[i]) min = list[i]; } printf("%d\n%d\n%d\n", max, min, sum); return 0;}
输入完成后用快速排序
#include<stdio.h>void quick_sort(int* list, int left, int right){ if(left >= right) return; int target, i, j, temp; target = list[left]; i = left, j = right; while(i != j){ while(i < j && list[j] >= target) j--; while(i < j && list[i] <= target) i++; if(i < j){ temp = list[i]; list[i] = list[j]; list[j] = temp; } } list[left] = list[i]; list[i] = target; quick_sort(list, left, i - 1); quick_sort(list, i + 1, right);}int main(){ int n, i, sum; scanf("%d", &n); int list[n]; scanf("%d", &list[0]); sum = list[0]; for(i = 1; i < n; i++){ scanf("%d", &list[i]); sum += list[i]; } quick_sort(list, 0, n - 1); printf("%d\n%d\n%d\n", list[n - 1], list[0], sum); return 0;}
阅读全文
0 0
- 基础练习 数列特征
- 基础练习 数列特征
- 基础练习 数列特征
- 基础练习 数列特征
- 基础练习 数列特征
- 基础练习 数列特征
- 基础练习 数列特征
- 基础练习 数列特征
- 基础练习 数列特征
- 基础练习 数列特征
- 基础练习 数列特征
- 基础练习 数列特征
- 基础练习 数列特征
- 基础练习 数列特征
- 基础练习 数列特征
- 基础练习 数列特征
- 基础练习 数列特征
- 基础练习 数列特征
- Loadrunner windows socket 协议 1
- SMBconnection类使用
- unit15
- 让Android的webview支持H5的图片上传,无需原生开发功能
- CentOS7 软件源
- 基础练习 数列特征
- 学习使用C++封装DLL并调用
- 安装Linux操作系统(1)
- Struts2拦截器
- JAVA-6-继承
- Struts2 访问request session application对象 。
- crontab脚本执行失败原因
- 微信测试号开发之三 接收处理消息并响应
- AJAX无法获取值的问题