解题思路:
是自己挑一部分数字求第二最大。所以如果全是负数那么最大就是什么都不挑。第二大就是0+最大的负数
注意事项:
没什么特别需要注意的
想用c提交就把 &和const去掉
参考代码:
#include<stdio.h> #define INF 0x80000000 #define SUP 0x7FFFFFFF inline int read()//速读 { int x=0,f=1;char ch=getchar(); while(ch<48||ch>57){if(ch=='-')f=-f;ch=getchar();} while(ch>=48&&ch<=57)x=(x<<3)+(x<<1)+(ch^48),ch=getchar(); return x*f; } inline int abs(const int &a){return a>=0?a:-a;}//绝对值 main()//所有正数相加(-最小的正数或+最大的负数) { int T=read(); while(T--) { int n=read(),sum=0,min=SUP,max=INF; while(n--) { int a=read(); if(a>0)sum+=a,min=min<a?min:a;//正数才加 else if(a<0)max=max>a?max:a; } if(min==SUP&&max==INF)min=0;//都没取说明全是0 else if(max!=INF&&min==SUP)min=-max;//最大的负数有,没有最小的正数,取用最大的负数 else if(max!=INF&&min!=SUP)min=abs(max)<min?abs(max):min;//都取了,比一个绝对值最小的 printf("%d\n",sum-min); } }
0.0分
0 人评分
倒杨辉三角形 (C语言代码)浏览:4040 |
C语言训练-8除不尽的数 (C语言代码)暴力解法,答案只有一个,直接输出就好了浏览:1045 |
母牛的故事 (C语言代码)浏览:782 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:668 |
C语言程序设计教程(第三版)课后习题7.4 (C语言代码)浏览:604 |
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:729 |
c primer plus 第十二章 12.1小节浏览:400 |
用筛法求之N内的素数。 (C语言代码)浏览:1385 |
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:548 |
WU-输出正反三角形 (C++代码)浏览:1098 |