我创建了一个程序,该程序将通过使用指针从用户将输入的整数集合中找到最大值和最小值来使用动态数组。
我实际上可以获得最大值的输出,但不是最小值;我发现我的动态数组通过max的函数计算后会为0,并使我的min成为min的赋值值。
我不知道为什么会这样-我尝试了很多方法,但是这些方法都没有用,所以有人可以解释原因,并在可能的情况下提供解决方案或给我一些提示以了解如何通过解决方案吗?
谢谢你的回复
好像我的代码让你感到困惑
对不起
程序意图从一定数量的整数中获取最大和最小数字
我想说的是,从max函数计算后,动态数组中的数据会变成0,当程序经过min函数时,它不会运行,因为已经设置了动态数组中的数据为 0
所以实际上我想问的是有没有办法让动态数组中的数据在max函数之后不会变成0?
对不起我的英语不好
#include <iostream>
using namespace std;
void max(int*, int);
void min(int*, int);
int main()
{
int *ptr;
int i;
int size;
cout << "how many integer: ";
cin >> size;
ptr = new int[size];
for (i = 0; i < size; i++)
{
cout << "integer#" << i << ": ";
cin >> *ptr + i;
}
max(ptr, size);
min(ptr, size);
delete [] ptr;
return;
}
void max(int* ptr, int size)
{
int i;
int j;
int max = 0;
for (i = 0; i < size; i++)
{
while (*ptr + i != 0)
{
j = *ptr + i % 10;
if (j > max)
{
max = j;
}
*ptr + i /= 10;
}
}
cout << max << endl;
}
void min(int* ptr, int size)
{
int i;
int j;
int min= 0;
for (i = 0; i < size; i++)
{
while (*ptr + i != 0)
{
j = *ptr + i % 10;
if (j < min)
{
min= j;
}
*ptr + i /= 10;
}
}
cout << min<< endl;
}