作者m339606 (mize)
看板C_Sharp
标题Re: [问题] 扫描阵列的问题
时间Sat Mar 29 20:16:49 2014
※ 引述《APE36 (PT乡民)》之铭言:
: int main()
: {
: int array_a[5]={11,22,33,22,44};
: int array_b[5]={11,22,33,22,44};
: int array_c[5];
: int i,j;
: for(i=0;i<5;i++)
: {
: for(j=0;j<5;j++)
: {
: if(array_a[i]!=array_b[j])
: {
: printf("%d\n",array_a[i]);
: break;
: }
: }
: }
: return 0;
: }
: 假如题目我判断相同的才输出,但是重复过的不输出
: 这程式哪里有需要做判断呢?
: 觉得因该判断式都已经做完了
: 只不过重复的值 没做出正确的判断
int[] Array_1 = { 11, 22, 33, 22, 44 };
int[] Array_2 = { 11, 22, 33, 22, 44 };
List<int> Array_3 = new List<int>();
for (int i = 0; i < Array_1.Length; i++)
{
if (Array_1[i] == Array_2[i])
//判断两个阵列同位置有重复的话丢入
{
Array_3.Add(Array_1[i]);
}
}
//然後直接Distinct之後输出
foreach (int Result in Array_3.Distinct())
{
Console.WriteLine(Result);
}
Console.ReadKey();
输出结果
11
22
33
44
刚刚才发现
if(array_a[i]!=array_b[j])
{
printf("%d\n",array_a[i]);
break;
}
你这个是判断不重复吧 囧?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.224.149.79
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1396095418.A.10B.html
1F:推 APE36:好像跑出来的结果不一样 我跑出来是记忆体空间数字~"~ 03/29 23:22
2F:→ APE36:不过你的输出结果是我想要的,感谢!! 03/29 23:22
3F:→ APE36:觉得我是用VS开发环境,不知道有不要嵌入外部函式的方法实作 03/29 23:24
4F:→ APE36:吗?? 因为我编译器版本有点旧 03/29 23:25
5F:→ m339606:看到你的printf,你不是用C#对吧? 03/29 23:26
6F:→ m339606:可以土法炼钢不过既然C#本身有更好用的程式码就用罗 03/29 23:27
int[] Array_1 =
{ 11, 22, 33, 22, 44, 55, 22, 33, 44, 88, 66, 11, 99, 77, 88, 22 };
int[] Array_2 =
{ 11, 22, 33, 22, 44, 55, 22, 33, 44, 88, 66, 11, 99, 77, 88, 22 };
int[] Array_3 = new int[Array_1.Length];
//比对1跟2相同的会丢入3的相对位置,1跟2不相同的部分3的相对位置会是
0
for (int i = 0; i < Array_1.Length; i++)
{
if (Array_1[i] == Array_2[i])
{
Array_3[i] = Array_1[i];
}
}
//阵列3自我比较
for (int i = 0; i < Array_3.Length; i++)
{
for (int j = 0; j < Array_3.Length; j++)
{
if (i != j) //i == j的时候不可以比较,因为绝对相同
{
if (Array_3[i] == Array_3[j])
{
Array_3[j] = 0;
//当i跟j不相同但是数值相同时将後面那一格指定为0
}
}
}
}
for (int i = 0; i < Array_3.Length; i++)
{
if (Array_3[i] != 0)
{
//当不为0的时候输出
Console.WriteLine(Array_3[i]);
}
}
Console.ReadKey();
输出结果
11
22
33
44
55
88
66
99
77
※ 编辑: m339606 来自: 61.224.149.79 (03/29 23:56)
7F:推 APE36:厉害,但是有一地方看不太懂 Array_3[i] == Array_3[j] 03/30 18:45
8F:→ APE36:已经给定假如相同後面指定为0 但是//当不为0的时候输出这里 03/30 18:45
9F:→ APE36:怎可以输出正确资料出来0..0! 03/30 18:46
10F:→ m339606:假设阵列为 11 22 33 22 44,後面那个22会被我改为0 03/30 19:00
11F:→ m339606:之後输出的时候判断Array_3[i] != 0 他就不会再出现了 03/30 19:01
12F:→ m339606:这解法针对不同情况会有些BUG,用集合用太习惯改原始阵列 03/30 19:02
13F:→ m339606:还真的很不习惯 03/30 19:02