易截截图软件、单文件、免安装、纯绿色、仅160KB

有道难题练习赛2中的c题

描述 给定一个整数序列,判断其中有多少个数,等于数列中其他两个数的和。 比如,对于数列1 2 3 4, 这个问题的答案就是2, 因为3 = 2 + 1, 4 = 1 + 3。 输入 第一行是一个整数T,表示一共有多少组数据。 1<= T <= 100
接下来的每组数据共两行,第一行是数列中数的个数n ( 1 <= n <= 100),第二行是由n个整数组成的数列。
输出 对于每组数据,输出一个整数(占一行),就是数列中等于其他两个数之和的数的个数。 样例输入 2
4
1 2 3 4
5
3 5 7 9 10
样例输出 2
1注意:这道题包括0和负数,故份两种情况。#include <stdio.h>
int main(){
int n,t,m,i,j,k,sum,f,T,ff;
scanf("%d",&T);
long a[200];
while(T--){
sum=0;ff=0;
scanf("%d",&n);
for(i=1; i<=n; i++){
scanf("%ld",&a[i]);
if(a[i]<=0)
ff=1;
}
for(i=1; i<n; i++)
for(j=i+1; j<=n; j++)
if(a[i]>a[j]){
t=a[i];
a[i]=a[j];
a[j]=t;
}
if(ff==0){
for(i=n; i>2; i--){
f=0;
for(j=i-1; j>1; j--)
for(k=i-2; k>0; k--)
if(a[i]==a[j]+a[k]){
f=1;
break;
}
if(f==1)
sum++;
}
}
else{
for(i=n; i>0; i--){
f=0;
for(j=n; j>0; j--)
for(k=n; k>0; k--)
if(a[i]==a[j]+a[k]&&i!=j&&j!=k&&i!=k){
f=1;
break;
}
if(f==1)
sum++;
}
}
printf("%d\n",sum);
}
return 0;
}



相关文档:

Linux下C语言实现字符串子串替换


    由于LINUX
C没有对字符串子串替换功能,所以我自己写了一个str_replace函数,实现了字符串替换.
请大家参考.
/*
 * FUNCTION     : str_replace
 *
ABSTRACT     : replace child string in a string.
 *
PARAMETER  &nbs ......

深入C/C++之基于CheckStackVars的安全检查(VS2008)

最近一直忙毕业的相关事情,加上工作,转眼间,又到月底了,之前承诺的每月一篇博文,前几天就一直在寻找到底要写什么,近两天又突然发现有很多东西可以写。本篇就先延续之前的一篇基于Cookie的安全检查机制(深入C/C++之基于Cookie的安全检查(VS2005))来介绍下另外一种在DEBUG版本下的安全检查,也就是CheckStackVars检 ......

Android原生(Native)C开发之三:鼠标事件篇(捕鼠记)


在做SDL至Android的移植时,键盘事件是能正常捕获到,看了SLD的源码,发现用的device是 /dev/tty0,但是鼠标叫是不能成功捕获,总是得到 0,运行命令查看devices时,显示如下:
 # cat /proc/bus/input/devices
cat /proc/bus/input/devices
I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="qwerty ......

判断C?行??境的程序

/*
**判断C?行??境的程序
*/
/*
**静?初始化
*/
int static_variable=5;
void
f()
{
 register int i1, i2, i3, i4, i5, i6, i7, i8, i9, i10;
 register char *c1, *c2, *c3, *c4, *c5, *c6, *c7 , *c8, *c9, *c10;
 extern int a_very_long_name_to_sec_how_long_they_can_be;
 double ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号