Re: [问题] 扫描阵列的问题

楼主: m339606 (mize)   2014-03-29 20:16:49
※ 引述《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;
}
你这个是判断不重复吧 囧?
作者: APE36 (PT乡民)   2014-03-29 23:22:00
好像跑出来的结果不一样 我跑出来是内存空间数字~"~不过你的输出结果是我想要的,感谢!!觉得我是用VS开发环境,不知道有不要嵌入外部函式的方法实作吗?? 因为我编译器版本有点旧
楼主: m339606 (mize)   2014-03-29 23:26:00
看到你的printf,你不是用C#对吧?可以土法炼钢不过既然C#本身有更好用的程式码就用囉
作者: APE36 (PT乡民)   2014-03-30 18:45:00
厉害,但是有一地方看不太懂 Array_3[i] == Array_3[j]已经给定假如相同后面指定为0 但是//当不为0的时候输出这里怎可以输出正确资料出来0..0!
楼主: m339606 (mize)   2014-03-30 19:00:00
假设阵列为 11 22 33 22 44,后面那个22会被我改为0之后输出的时候判断Array_3[i] != 0 他就不会再出现了这解法针对不同情况会有些BUG,用集合用太习惯改原始阵列还真的很不习惯

Links booklink

Contact Us: admin [ a t ] ucptt.com