函数更改后指针的显示值与数组 C 一起改变
display value of pointer after function alter with array C
当我运行它时,它会给出一串数字和字母(我猜的地址)我哪里出错了?我试图显示最高和最低数字
intArray 是一个由 10 个数字组成的一维数组,大小 = 10
void greatAndSmall(int intsAray[], const int SZ, int greatAdd, int smallAdd) //def func
{
while (x < SZ)
{
if (intsAray[x] > greatAdd)
greatAdd = intsAray[x];
else
break;
if (intsAray[x] < smallAdd)
smallAdd = intsAray[x];
else
break;
x = x + 1;
}
}
greatAndSmall(intArray, SIZE, &great, &small); //IN MAIN FUNC
cout << "The smallest of these numbers is: " << small << "n"; //display smallest
cout << "The largest of these numbers is: " << great; //display greatest
你的代码,如编写的那样,不是有效的 C/C++,无法编译。它还存在逻辑问题,即使编译也无法工作(您使用的break
完全是多余的。
只需使用此代码:
void greatAndSmall (int intsArray [], int sz, int * largest, int * smallest)
{
if (sz < 1) return;
*largest = *smallest = intsArray[0];
for (int i = 1; i < sz; ++i)
{
if (intsArray[i] > *largest) *largest = intsArray[i];
if (intsArray[i] < *smallest) *smallest = intsArray[i];
}
}
重要说明:这是 C 代码。不要一秒钟认为,仅仅因为你使用了cout
,这可以算作C++代码。
只是为了比较,这就是人们在C++中写这篇文章的方式:
// Largest value in first and smallest value in second
std::pair<int, int> greatAndSmall (std::vector<int> const & c)
{
if (c.empty()) return {};
std::pair<int, int> ret (c[0], c[0]);
for (unsigned i = 1; i < c.size(); ++i)
{
if (c[i] > ret.first) ret.first = c[i];
if (c[i] < ret.second) ret.second = c[i];
}
return ret;
}
或者这个更通用(公认更复杂)的版本:
template<typename C>
auto greatAndSmall (C const & c)
-> std::pair<typename C::value_type, typename C::value_type>
{
if (c.empty()) return {};
auto ret = std::make_pair(*c.begin(), *c.begin());
for (auto const & v : c)
{
if (v > ret.first) ret.first = v;
if (v < ret.second) ret.second = v;
}
return ret;
}
相关文章:
- 为什么我不能将 rand() 与数组的大小一起使用?
- 如何将 std::find() 与 2d std: 数组一起使用?
- 程序在初始化期间未与数组一起运行
- 将 find_if() 与数组一起使用的代码段中出错
- 是否可以将isdigit,isalpha函数与输入的字符串数组一起使用
- 将MPI_Scatter与 char* 数组一起使用
- 在模板参数中使用 auto:一些使用示例和..如何使其与恒定大小的 C 数组一起使用
- 将模板气泡排序与结构数组一起使用时出现问题
- 将'sort'与字符数组一起使用 (C++)
- Strncpy只能与固定长度的数组一起使用
- 关于结构和将它们与数组一起使用
- 如何将while循环与数组一起使用
- 将"getline"与数组一起使用
- 将输入流迭代器与数组一起使用
- 将指针与动态数组一起使用时出现问题
- 如何将 printf 与 2D 数组一起使用
- 函数更改后指针的显示值与数组 C 一起改变
- 如何将 boost::crc_optimal 与二进制数组(0 和 1 的数组)一起使用
- 是否可以将两个多维数组一起添加到第三个多维数组中
- 如何声明一个将string和int数组一起排序的函数?