using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace WindowsFormsApplication3
{
public partial class FrmInport : Form
{
public FrmInport()
{
InitializeComponent();
label1.Text = "";
}
private void button1_Click(object sender, EventArgs e)
{
if(fileInport.ShowDialog()==DialogResult.OK)
{
label1.Text = "";
using(FileStream fileStream= File.OpenRead(fileInport.FileName))
{
using(StreamReader streamReader=new StreamReader(fileStream))
{
string line=null;
//int[] red = new int[6];声明定长数组
int[] red; //声明动态数组
StreamWriter streamWriter = new StreamWriter(@"c:/newtxt.txt");
while((line=streamReader.ReadLine())!=null)
{
string[] strs=line.Split(' ');
red=new int[strs.Length];//为动态数组初始化空间
for (int i = 0; i < strs.Length; i++)
{
red[i] = Convert.ToInt32(strs[i]);
}
//检查每一组数据是否存在中点数
if (ZhongDianHao(red))
{
label1.Text += line + "/n";
streamWriter.WriteLine(line);
}
}
streamWriter.Dispose();
}
}
}
}
static public bool ZhongDianHao(int[] red)
{
int sum = 0;
int length;
length=red.Length;
//检查所有红球的;
for (int j = length - 1; j > 1; j--)
{
for (int i = 0; i < length - 3; i++)
{
if (j >= i + 2) //必须保证有三个红球才能进行比较
{
sum = red[i] + red[j];
if (sum % 2 == 0)
{
int index = (i + j) / 2; // 2;取中间值的index
if (sum == red[index] * 2) return true;
else if (sum > red[index] * 2)
{
index = index + 1;
if (index < j)
{
if (sum == red[index] * 2) return true;
if (sum > red[index] * 2)
{
index = index + 1;
if (index < j)
{
if (sum == red[index] * 2) return true;
}
}
}
}
else
{
index = index - 1;
if (index > i) //必须大于首号的index序号是个动态值
{
if (sum == red[index] * 2) return true;
if (sum < red[index] * 2)
{
index = index - 1;
if (index > i) //必须大于首号的index序号是个动态值
{
if (sum == red[index] * 2) return true;
}
}
}
}
}
}
}
}
return false;
}
}
}