两个数组,即item
和tra
item
包含
B
C
M
G
D
E
tra
数组包含
BM
BDGE
MDGC
BMDG
BMDC
我需要找到item
数组中存在的tra
数组中每个元素的数量
例如B
计数为4 C
计数为2
对于此任务,我使用count()
和计数器变量。
这是我的代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace apriori
{
class apriori
{
static void Main(string[] args)
{
int t, n, s, i, j, k, q;
int counter = 0;
int[] count = new int[6];
Console.WriteLine("enter the number of transactions t");
t = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("enter the number of items n");
n = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("enter minimum support s");
s = Convert.ToInt32(Console.ReadLine());
String[] tra = new String[t];
String[] item = new String[n];
Console.WriteLine("enter transactions representing one alphabet each item");
for (i = 0; i < t; i++)
{
tra[i] = Console.ReadLine();
}
Console.WriteLine("list of transactions");
foreach (String it in tra)
{
Console.WriteLine(it);
}
Console.WriteLine("enter items");
for (j = 0; j < n; j++)
{
item[j] = Console.ReadLine();
}
Console.WriteLine("list of items");
foreach (String ite in item)
{
Console.WriteLine(ite);
}
for (i = 0; i < n; i++)
{
for (j = 0; j < t; j++)
{
if (item[i]==tra[j])
{
count[i]=counter++;
}
}
counter=0;
}
答案 0 :(得分:0)
您的程序不适用于n>6
,因为:
int[] count = new int[6];
for (i = 0; i < n; i++)
{
for (j = 0; j < t; j++)
{
if (item[i]==tra[j])
{
// this index is out of bounds when i>=6
count[i]=counter++;
}
}
counter=0;
}