返回连续数字的逻辑假设数组包含元素 1,9,2,3,4,9,6,7,8,那么它应该返回 2,3,4,6,7,8
Logic to return continuous numbers lets say array with elements 1,9,2,3,4,9,6,7,8 then it should return 2,3,4,6,7,8?
我的代码在下面,但有一些错误,任何人都可以指导我编写逻辑来返回连续数字,例如,如果array[] = {1,3,5,2,3,4,7,4,5,6}
那么函数应该返回2,3,4,4,5,6
记住时间复杂度?
#include <stdio.h>
#define max 10
int coll[max];
void call_sort(int* p) {
int i = 0, first, sec;
while (*p) {
first = *p;
p++;
sec = *p - 1;
if (first == sec) {
coll[i] = *p;
i++;
}
int j;
for (j = 0; j < max; j++) {
printf("%d ", coll[j]);
//coll=coll+1;
}
}
}
int main(void) {
printf("yan");
int buff[max], i;
for (i = 0; i < max; i++)
scanf("%d", buff[i]);
call_sort(&buff);
}
你的代码有很多问题
-
错误的参数要
scanf()
,需要传递变量的地址才能在里面修改scanf()
像这样scanf("%d", &buff[i]);
您还应该通过检查其返回值来检查
scanf()
是否正确读取了该值。 -
call_sort()
参数错误,在这种情况下这不会引起任何问题,但它是错误的,这与scanf()
问题相结合,意味着您没有启用编译器警告,您应该。通过
buff
的正确方法很简单call_sort(buff);
-
错误的
while (*p)
假设0
是数组的最后一个元素。您可能应该将大小作为参数传递并编写一个
for
循环,因为您正在处理数字并且0
是一个数字,如果它是一个文本字符串,那么可以从正常值中排除0
并将其用作哨兵值,这是在字符串的标准库函数中完成的。
相关文章:
- 函数如何使用引用返回所需的数字?
- 如何优化代码以返回最接近给定整数的数字,但给定列表中不存在?
- 返回 int 中可被 2 c++ 整除的所有数字的总和
- C++ python 中的函数返回数字而不是字符串
- 使用非托管导出将字符串从 C# 返回到C++将返回数字
- 我的代码应该接受一个数字,并返回字母等级或"Grade is not valid"但 else 语句不起作用
- 如何返回一串字母数字字符中的最大值(例如-1A003B3)?
- 将 MPFR 数字转换为字符串并返回
- C++ 递归:返回数字的最小偶数
- typeid.name 返回派生类类型之前的数字
- Fibbonaci 递归代码返回错误值,始终返回下一个数字
- 为什么我的阶乘数查找器返回以C++输入的数字?(已编辑)
- 将字符转换为ASCII返回数字太大
- 从排序的数字数组中返回数字范围的最快方法是什么?
- 使用关键字从文本文件返回数字
- 将元组传递给函数并让它返回数字列表的最佳方法
- placeNumbers应该返回数字的顺序,以便满足布尔值向量中编码的条件
- 带有Overload[]运算符的C++MyInteger类,因此索引在位置i返回数字
- c++程序返回数字而不是字符
- 返回数字所在的行