【发布时间】:2016-11-07 19:17:44
【问题描述】:
我希望有一个函数可以浏览任意大小的自然数数组 ({0,1,2....}) 并找到缺失值。
我的意思是,如果数组是例如:{0,1,3,4,5} 我希望函数返回 2,如果数组是 {1,3,0,4} 我希望函数返回返回 2 以此类推...
我的尝试是:
int missing(int* t, int r) {
int i;
int sum=0;
sum=(r+1)*(r+2)/2;
for(i=0;t[i];i++){
sum-=t[i];
}
return sum;
}
这个想法是首先计算从 1 到 n 的总和,然后从这个总和中分别减去数组中的每个数字。然而,程序返回总和而不减去数组中的数字。
为什么它不能正常工作?
【问题讨论】:
-
for(i=0;t[i];i++)这完全没有意义 - 你是说for(i = 0; i < r; i++)吗?