它一直说标识符 "posi" 未定义
It keeps saying identifier "posi" is undefined
一直说标识符"posi"不知何故未定义,找了找也没找到类似的,有大神帮忙吗?代码在下面,我是编程新手,对c++不是很熟悉,不胜感激,谢谢。
#include "stdafx.h"
#include <iostream>
#include <math.h>
using namespace std;
const int num = 10;
int max[num], sum[num], min[num];
int total(int sum[], int num);
int maximum(int max[], int num, int posi[]);
int minimum(int min[], int num, int posi[]);
int main() {
int i, pnum, psum, pmax, pmin;
cout << "Give 10 positive integer values, one-by-one: " << endl;
while (num > 0) {
for (i = 0; i < 11; i++) {
cout << "Enter Number" << i << ":";
cin >> pnum;
}
}
psum = total(sum, num);
cout << "The sum is " << sum;
cin >> sum[i];
pmax = maximum(max, num, posi);
cout << "The maximum value is " << max << ", and it is in position " <<
posi << endl;
cin >> max[i] >> posi[i];
pmin = minimum(min, num, posi);
cout << "The minimum value is " << min << ", and it is in position " <<
posi << endl;
cin >> min[i] >> posi[i];
system ("pause");
return 0;
}
int maximum(int max[], int num, int posi[]) {
int posit = 0, maxi = 0, numb,i;
maxi = numb;
while (numb > 0) {
for (i = 0; i < 11; i++) {
if (numb > maxi) {
maxi = numb;
posit = i;
}
i = i + 1;
}
return maxi;
}
}
说它是未定义的,因为你从来没有定义过它。在此函数调用 pmax = maximum(max, num, posi);
中,您将 posi
传递给最大值,但您尚未定义它!调用 maximum
而不是 minimum
时出现错误的原因可能是编译器在遇到未定义的引用时停止编译。如果您删除对 maximum
的调用,当您尝试执行 cin >> max[i] >> posi[i];
时,它会给您一个错误。如果您删除该行,那么当您调用 minimum,
等时它会给您一个错误。我建议查看一些基本的 C++ 教程,these ones are pretty good. Specifically the Variables and Types 部分。
一直说标识符"posi"不知何故未定义,找了找也没找到类似的,有大神帮忙吗?代码在下面,我是编程新手,对c++不是很熟悉,不胜感激,谢谢。
#include "stdafx.h"
#include <iostream>
#include <math.h>
using namespace std;
const int num = 10;
int max[num], sum[num], min[num];
int total(int sum[], int num);
int maximum(int max[], int num, int posi[]);
int minimum(int min[], int num, int posi[]);
int main() {
int i, pnum, psum, pmax, pmin;
cout << "Give 10 positive integer values, one-by-one: " << endl;
while (num > 0) {
for (i = 0; i < 11; i++) {
cout << "Enter Number" << i << ":";
cin >> pnum;
}
}
psum = total(sum, num);
cout << "The sum is " << sum;
cin >> sum[i];
pmax = maximum(max, num, posi);
cout << "The maximum value is " << max << ", and it is in position " <<
posi << endl;
cin >> max[i] >> posi[i];
pmin = minimum(min, num, posi);
cout << "The minimum value is " << min << ", and it is in position " <<
posi << endl;
cin >> min[i] >> posi[i];
system ("pause");
return 0;
}
int maximum(int max[], int num, int posi[]) {
int posit = 0, maxi = 0, numb,i;
maxi = numb;
while (numb > 0) {
for (i = 0; i < 11; i++) {
if (numb > maxi) {
maxi = numb;
posit = i;
}
i = i + 1;
}
return maxi;
}
}
说它是未定义的,因为你从来没有定义过它。在此函数调用 pmax = maximum(max, num, posi);
中,您将 posi
传递给最大值,但您尚未定义它!调用 maximum
而不是 minimum
时出现错误的原因可能是编译器在遇到未定义的引用时停止编译。如果您删除对 maximum
的调用,当您尝试执行 cin >> max[i] >> posi[i];
时,它会给您一个错误。如果您删除该行,那么当您调用 minimum,
等时它会给您一个错误。我建议查看一些基本的 C++ 教程,these ones are pretty good. Specifically the Variables and Types 部分。