下面的代码是我的思路,
定义两个int型的一维数组,ch1[10],和ch2[10];
把二维数组的第一行赋值给ch1[10];
再从二维数组的第二行开始,把接下来的数据依次赋值给ch2[10];
赋值到第j行的时候,有
if(ch1==ch2);
break;
再用SetDlgItemInt()函数,把这个j显示到一个文本框上面。但是结果不是我想要的,
所以来找高手们帮忙看看。哪里出错了。这段代码不能直接运行,牵扯到之前还有一个二维数组。
就劳烦各位帮忙看看了先。
二维数组的话
我这边的二维数组是
0,0,0,1;
0,0,1,0;
0,1,0,0;
1,0,0,1;
0,0,1,1;
0,1,1,0;
1,1,0,1;
1,0,1,0;
0,1,0,1;
1,0,1,1;
0,1,1,1;
1,1,1,1;
1,1,1,0;
1,1,0,0;
1,0,0,0;
0,0,0,1;
0,0,1,0;
0,1,0,0;
1,0,0,1;
0,0,1,1;
0,1,1,0;
1,1,0,1;
1,0,1,0;
0,1,0,1;
1,0,1,1;
0,1,1,1;
1,1,1,1;
1,1,1,0;
1,1,0,0;
1,0,0,0;
0,0,0,1;
0,0,1,0;
0,1,0,0;
1,0,0,1;
0,0,1,1;
0,1,1,0;
1,1,0,1;
1,0,1,0;
0,1,0,1;
1,0,1,1;
0,1,1,1;
1,1,1,1;
1,1,1,0;
1,1,0,0;
1,0,0,0;
0,0,0,1;
0,0,1,0;
0,1,0,0;
1,0,0,1;
0,0,1,1;
0,1,1,0;
1,1,0,1;
1,0,1,0;
0,1,0,1;
1,0,1,1;
0,1,1,1;
1,1,1,1;
1,1,1,0;
1,1,0,0;
1,0,0,0;
0,0,0,1;
0,0,1,0;
0,1,0,0;
1,0,0,1;
这个二维数组的第一行和第十六行是相同的。但是最后显示出来的j是1024,不知道哪里错了。
void CCyber2Dlg::OnTime()
{
// TODO: Add your control notification handler code here
int ch1[10];
int ch2[10];
int i,j;
for (i=0;i<lens;i++)
{
ch1[i]=matrix[0][i];
}
for (j=1;j<1024;j++)
{
for (i=0;i<lens;i++)
{
ch2[i]=matrix[j][i];
}
if(ch2==ch1)
break;
}
SetDlgItemInt(IDC_Time,j);
}
定义两个int型的一维数组,ch1[10],和ch2[10];
把二维数组的第一行赋值给ch1[10];
再从二维数组的第二行开始,把接下来的数据依次赋值给ch2[10];
赋值到第j行的时候,有
if(ch1==ch2);
break;
再用SetDlgItemInt()函数,把这个j显示到一个文本框上面。但是结果不是我想要的,
所以来找高手们帮忙看看。哪里出错了。这段代码不能直接运行,牵扯到之前还有一个二维数组。
就劳烦各位帮忙看看了先。
二维数组的话
我这边的二维数组是
0,0,0,1;
0,0,1,0;
0,1,0,0;
1,0,0,1;
0,0,1,1;
0,1,1,0;
1,1,0,1;
1,0,1,0;
0,1,0,1;
1,0,1,1;
0,1,1,1;
1,1,1,1;
1,1,1,0;
1,1,0,0;
1,0,0,0;
0,0,0,1;
0,0,1,0;
0,1,0,0;
1,0,0,1;
0,0,1,1;
0,1,1,0;
1,1,0,1;
1,0,1,0;
0,1,0,1;
1,0,1,1;
0,1,1,1;
1,1,1,1;
1,1,1,0;
1,1,0,0;
1,0,0,0;
0,0,0,1;
0,0,1,0;
0,1,0,0;
1,0,0,1;
0,0,1,1;
0,1,1,0;
1,1,0,1;
1,0,1,0;
0,1,0,1;
1,0,1,1;
0,1,1,1;
1,1,1,1;
1,1,1,0;
1,1,0,0;
1,0,0,0;
0,0,0,1;
0,0,1,0;
0,1,0,0;
1,0,0,1;
0,0,1,1;
0,1,1,0;
1,1,0,1;
1,0,1,0;
0,1,0,1;
1,0,1,1;
0,1,1,1;
1,1,1,1;
1,1,1,0;
1,1,0,0;
1,0,0,0;
0,0,0,1;
0,0,1,0;
0,1,0,0;
1,0,0,1;
这个二维数组的第一行和第十六行是相同的。但是最后显示出来的j是1024,不知道哪里错了。
void CCyber2Dlg::OnTime()
{
// TODO: Add your control notification handler code here
int ch1[10];
int ch2[10];
int i,j;
for (i=0;i<lens;i++)
{
ch1[i]=matrix[0][i];
}
for (j=1;j<1024;j++)
{
for (i=0;i<lens;i++)
{
ch2[i]=matrix[j][i];
}
if(ch2==ch1)
break;
}
SetDlgItemInt(IDC_Time,j);
}
这样写,可行吗?
BOOL b = FALSE;//第N个和第N+1个至最后的分别比较
for (j=0;j<1024;j++)
{
for (k=j+1;k<1024;k++)
{
for (i=0;i<lens;i++)
{
// 0到lens - 1个全部相等
if (matrix[j][i] != matrix[k][i])
{
//不相等,后面不用比较了
b = FALSE;
break;
}
b = TRUE;
}
if (b) //只找一次
break;
}
if (b) //只找一次
break;
}if (b)
SetDlgItemInt(IDC_Time,j);
改一下
int i,j;
BOOL b = FALSE;//第N个和第N+1个至最后的分别比较
for (k=0;k<1024;j++)
{
for (j=k+1;j<1024;j++)
{
for (i=0;i<lens;i++)
{
// 0到lens - 1个全部相等
if (matrix[j][i] != matrix[k][i])
{
//不相等,后面不用比较了
b = FALSE;
break;
}
b = TRUE;
}
if (b) //只找一次
break;
}
if (b) //只找一次
break;
}if (b)
SetDlgItemInt(IDC_Time,j+1); //j从0开始
{
// TODO: Add your control notification handler code here
int ch1[10];
int ch2[10];
int i,j;
for (i=0;i<lens;i++)
{
ch1[i]=matrix[0][i];
}
for (j=1;j<1024;j++)
{
for (i=0;i<lens;i++)
{
ch2[i]=matrix[j][i];
}
if(ch2==ch1)// 这里是两地址在比较吧 肯定是不相等的 ch2!= ch1;
break;
}
SetDlgItemInt(IDC_Time,j);
}