作者larrytao (Larry)
看板C_and_CPP
标题Re: [问题] 一个回圈内的问题~
时间Sun May 10 13:15:41 2009
※ 引述《asb ((  ̄ c ̄)y▂ξ)》之铭言:
: int isin(int nums[], int length, int key)
: {
: int i;
: for (i=0;i<length;i++)
: {
: if (nums[i]==key)
: return (1);
: }
: return (0);
: }
: 这程式的意思是在阵列中寻找一个数字,若该数字存在於阵列则传回1,否则传回0。
: 如 nums1[]={3,5,3,2453,-7,0};
: isin(nums1,6,-7);
: 其结果为1
: 以上这个程式我看的懂~
: ------------------------------------------------
: void printonce(int nums[], int length)
: {
: int i,j;
for (i=1;i<=length;i++) //但从以下这程式~我完全想不出过程
//寻找数字阵列同第一位收开始搜寻起
: {
for (j=0;j<i;j++) // 重点在"j<i" 代表在搜寻每一个数字,
// 都会再从头比对起,
// 一直比对到前一位数字,
// 例如要决定是否列出第三个,再重新比对第1~2个数
// 决定是否要列出第五个数字,会先重新比对第1~4个数
// 以此类推
if (isin(nums, i-1, nums[j])==0)
// 回传值为0代表该数字没有与之前重覆到, 所以为true,
// 印出来吧!
: printf("%d\n",nums[j]);
: }
: }
: 这题目主要是找出阵列中的所有数字列印出来,但限制是重覆出现的数字只能出现一次
: 例如:
: nums1[]={3,5,3,2453,-7,0},
: printonce(nums1,6);
: 其结果为
: 3
: 5
: 2453
: -7
: 0
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.217.110.243