c++练习:

来源:百度知道 编辑:UC知道 时间:2024/05/10 11:43:15
c++练习:已知一个含有999个整数的数组;此数组中的数各不相同且都是在1~1000之间。也就是说,我们的数组中漏了一个在1~1000之间的某个未知数。请问你有什么办法找出这个数。可以只写算法描述。

#include<iostream.h>
void main()
{
int a[9]={1,2,3,4,6,7,8,9,10},b[11]={0};
for(int i=1;i<11;i++)
for(int j=0;j<10;j++)
if(i==a[j])
b[i]=1;
for(int k=1;k<12;k++)
if(b[k]!=1)
cout<<k<<endl;
}
把9,改为999,10改为1001就可以拉

把此数组从小到大排序,然后把数组中每相邻的两个元素相减,差为2的,下标大的元素的下标就是那个数了,得先判断0号元素的值是不是为1;

计算这999个数的和,拿500500减去这个和就是少的那个数。

把数组排序是不必要的步骤
我想应该是这样的
#include "stdio.h"
int main()
{ int i,*p=1;
for(i=1;i<1001;i++)
{if(*p==i)
(*p)++;
else
printf("%d",*p);
}