一个长度为98的int数组,其中的元素都是1-100之间的数字且无重复。现问,1-100之间 哪两个数字不在该数组中

这题什么意思谁能给解释下
谁能java实现下最好啊

1-100一共100个数字,而数组中只有98个,当然有2个数没有在数组中啊。题目就是让你找出哪两个数不在数组中。
可以设一个辅助数组tag[101],其中tag[i]=true则表示i在数组中。先把tag中元素全初始化为false,然后遍历一遍数组,把有的数对应的tag都赋成true。再遍历一次tag数组,输出其中的两个false值对应的下标即可。追问

没明白

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-01-10
就是1-100里的哪两个数字没有出现在该数组中。你用一个循环+比较的算法就能求出哪两个不在里面了追问

详细说说啊,我也感觉这题没完啊 不知道这题什么意思啊我的理解就是 98位的数组 100个数中哪两个都可以不再数组里

追答

你这是完整的题目吗??那只能写出算法,无法实现喔。因为系统没有自带的那98位数字,所以无法知道具体是哪2个数字不在数组里面

第2个回答  2012-01-10
C语言不会,但是知道思想,做一个双层循环,外循环让是1到100的整数,内循环是遍历那个int数组,然后用外循环的数去跟那个数组里的一个个相比较,如果相等,break,如果内循环遍历完还找不到相等的,那么他就是所要找的,并把他放到在循环外面定义好的数组中。整个程序OK追问

什么语言都行java最好

第3个回答  2012-01-10
数组的值是1-100之间的98个数,剩余两个数字是什么?
第4个回答  2012-01-10
void main()
{
unsigned int arr[98];
//初始化数据
unsigned int i;
for(i=0;i<50;i++)
{
arr[i]=i+1;
}
for(i=50;i<98;i++)
{
arr[i]=i+3;
}
//查找不在数组里的两个数字
for(i=1;i<=100;i++)
{
bool found=false;
for(unsigned int j=0;j<98;j++)
{
if(arr[j]==i)
{
found=true;
break;
}
}
if(!found)
{
printf("%d\n",i);
}
}
}追问

能给解释下为什么
for(i=50;i<98;i++)
{
arr[i]=i+3;
}

追答

java版本:

public class test {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int arr[];
arr=new int[98];
//初始化数据
int i;
for(i=0;i<50;i++)
{
arr[i]=i+1;
}
for(i=50;i<98;i++)
{
arr[i]=i+3;
}
//查找不在数组里的两个数字
for(i=1;i<=100;i++)
{
int found=0;
for(int j=0;j<98;j++)
{
if(arr[j]==i)
{
found=1;
break;
}
}
if(found==0)
{
System.out.println(i);
}
}
}

}

本回答被提问者采纳
相似回答