|
用指针求数组里的最大最小数。
#include<iostream>
using namespace std;
void get_max_min(int src[ ], int* a, int* b)
{
int i;
for (i = 0; i <=sizeof(src)/4-1; i++)
{
*a = *a > src[i] ? *a : src[i];
*b = *b < src[i] ? *b : src[i];
}
}
int main()
{
int num[ ] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,11,12};
int max = num[0], min = num[0];
get_max_min(num, &max, &min);
cout << "max=" << max << endl;
cout << "min=" << min << endl;
return 0;
}
我这里在定义函数中为了控制for循环次数,用了sizeof命令,因为老大说过整型数组的字节数为元素个数*4,可是运行下来我发现不对,多次调试发现他默认sizeof(src)恒等于4,也就是一个int型变量的字节数,然后将sizeof用到main函数中就可以了,这是为啥,求老大解答。下面是改过的程序,这是对的。
void get_max_min(int src[], int* a, int* b,int j)
{
int i;
for (i = 0; i <=j; i++)
{
*a = *a > src[i] ? *a : src[i];
*b = *b < src[i] ? *b : src[i];
}
}
int main()
{
int num[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,11,12};
int max = num[0], min = num[0];
int len = sizeof(num) / 4 - 1;
get_max_min(num, &max, &min,len);
cout << "max=" << max << endl;
cout << "min=" << min << endl;
return 0;
}
可以看一下该网址,应该对你有帮助:https://www.cnblogs.com/lanhaicode/p/10348877.html
|
上一篇: 计算c++字符串下一篇: 关于类数组的chu'shi'hua
|