C# 数组 的一个简单算法,谁能帮帮忙!
发布网友
发布时间:2022-04-22 23:32
我来回答
共4个回答
热心网友
时间:2023-07-10 00:18
因为不清楚原数组a中到底有多少个满足条件的,另外你要把数据继续存入数组A。
一般这里有两个方法,首先一就是建立a[200],即使所有数都不满足去掉条件都可以保存下来。
另外一个方法就是直接a[100]。筛选过的数据存入数组b,完毕后,把b循环覆盖回a。这里要注意,覆盖回去后并不是a中所有数据都符合条件,只有a数组中b.Length之前的才符合数据。
具体如下
第一种方法:
//int []a =new int [200];
int num=0;
for(int i=0;i<100;i++)
{
if(i>10&&((a[1]==7)||(a[1]==9)))
{
a[100+num]=a[i];
num++;
}
}
//输出符合结果的数据
for(int i=0;i<num;i++)
{
Console.WriteLine(a[i+100].ToString());
}
第二种方法:
int [] b=new int [100];
int num=0;
for(int i=0;i<100;i++)
{
if(i>10&&((a[1]==7)||(a[1]==9)))
{
b[num]=a[i];
num++;
}
}
//输出
for(int i=0;i<num;i++)
{
Console.WriteLine(b[i].ToString());
}
**********************
ArrayList 类似可变数组。他在初始化时不用设定长度。
初始化ArrayList al=new ArrayList();
向里面加数据al.Add(object);
读取数据al[0];
应该对你有用。
热心网友
时间:2023-07-10 00:19
我觉得使用集合简单方便,下面一些示例,希望你能参考
private void button1_Click(object sender, EventArgs e)
{
List<byte> a = new List<byte>();
List<byte> b = new List<byte>();
//初始化赋值
for (byte i = 0;i < 100 ;i++ )
{
a.Add(i);
}
MessageBox.Show(a.Count.ToString());
//选择满足条件数
for (byte i = 0; i < a.Count;i++ )
{
if ((int)a[i] / 10 == 7 || (int)a[i] / 10 == 9)
{
b.Add(i);
}
}
//删除满足条件数
foreach (byte i in b)
{
a.Remove(i);
}
}
热心网友
时间:2023-07-10 00:20
//复制即可运行
using System;
using System.Collections.Generic;
using System.Text;
namespace aa
{
public class classTest
{
public static void Main()
{
int[] a = new int[100];
List<int> aa = new List<int>();
for (int i = 0; i < 100; i++)
{
a[i] = i;
aa.Add(a[i]);
}
for (int i = 0; i < a.Length; i++)
{
if ((a[i] >= 70 && a[i] < 80) || (a[i] >= 90 && a[i] < 100))
{
aa.Remove(a[i]);
}
}
a = new int[aa.Count];
for (int i = 0; i < a.Length; i++)
{
a[i] = (int)aa[i];
Console.Write("{0,4}", a[i]);
}
Console.ReadKey();
}
}
}
//____________________________________________________
//C#里定义int[]数组后 ,其长度是可以变得,重新new或者用
//Array.Resize()方法;
热心网友
时间:2023-07-10 00:20
以下是思路,可能具体函数有出路
for(int i=0;i<100;i++)
{
a[i].ToString().Index(a[i].length-1,1) 判断7,9
if(a[i].ToString().Index(a[i].length-1,1)==7 || a[i].ToString().Index(a[i].length-1,1)==9)
{ a[i]=a[i].ToString().Index(a[i].length-2,a[i].length-2) +a[i].ToString().Index(a[i].length,1)
}
}