简单求值
-
描述
-
给出N个整数X1,X2,X3,···,XN ,将这N个数从小到大排序为A1,A2,A3,···,AN ,记数列A1,A2,A3,···,AN 的奇数项之和为P,偶数项之和为Q,令T=|P-Q|,求出T的值。
-
输入
-
输入第一行为整数N(1≤N≤500)。
接下来的N行每行有一个整数,按顺序给出X1,X2,X3,···,XN ,的值(|Xi|≤1000)
输出
- 输出T的值。 样例输入
-
3 1 3 2
样例输出
-
2
上传者
#include<iostream>
using namespace std;
#include<algorithm>//头文件要记号,下面有个Using namespace std;
int cmp(int a,int b) //sort排序更简单,
{return a<b;}//如果降序则a>b,如果升序则a<b
int main()
{
int n,a[500],sum,i;
cin>>n;
for(i=0;i<n;i++)
cin>>a[i];
sort(a,a+n,cmp);//升序的时候,cmp就不用写了,上面的那个函数也不用写了
for(i=0,sum=0;i<n;i++)
{
if(i%2==0)sum+=a[i];
else sum-=a[i];
}
if(sum<0)cout<<-sum<<endl;
else cout<<sum<<endl;
return 0;
}
做题要认真,看清题目,不懂装懂只会让你走弯路,自找的。。。
补充:sort排序也可以排字符串,和结构体里面的内容
例如结构体
struct bag
{
int price ,number;
};
int cmp(bag a,bag b)
{
return a.price>b.price; //这是按照价格排序的,注意函数返回类型和函数的参数类型要和主函数中的一致!
}
int main()
{
bag b[10];
sort(b,b+n;cmp)// 第一个数据表示从那个开始排,第二个数据中的n表示排序的长度,也就是从第0个排到第n-1个,即第一个到第n个,cmp就表示排序了,怎么排,按什么排,就看cmp函数了。
}
-
输入第一行为整数N(1≤N≤500)。