C++代码报错:'getmin'未在此作用域中声明,求数组最值遇问题
解决C++中'getmin'未声明的报错及数组最值问题
报错原因及修复步骤
- 函数类型拼写错误:你定义
getmin时用了大写的Int,C++里整数类型关键字是小写的int,这会导致函数定义无效,编译器识别不到getmin。 - 循环变量拼写错误:两个函数的循环体里都用了大写的
I,应该是小写的i,这会触发未定义变量的编译错误,同时让函数逻辑失效。 - 函数声明/定义顺序问题:如果
getmin的定义在调用代码之后,编译器执行到调用语句时还不知道这个函数,需要提前声明函数原型,或者把函数定义移到调用代码之前。 - 缺少必要头文件:使用
INT32_MAX和INT32_MIN需要包含<climits>头文件,否则这些常量无法被编译器识别。
修正后的完整代码
#include <iostream> #include <climits> // 提前声明函数原型(若函数定义在main之后需加此声明) int getmin(int num[], int n); int getmax(int num[], int n); int main() { int num[] = {12, 45, 7, 33, 2}; int size = sizeof(num) / sizeof(num[0]); std::cout << "Minimum value is " << getmin(num, size) << std::endl; std::cout << "Maximum value is " << getmax(num, size) << std::endl; return 0; } int getmin(int num[], int n){ int min = INT32_MAX; for(int i = 0; i < n; i++){ if(num[i] < min){ min = num[i]; } } return min; } int getmax(int num[], int n){ int max = INT32_MIN; for(int i = 0; i < n; i++){ if(num[i] > max){ max = num[i]; } } return max; }
内容的提问来源于stack exchange,提问作者ramchandra kambali
相关产品推荐
相关产品推荐

