所以我这里有这个简单的程序,我的导师是要求进行以下修改,我不能看到它:C++数组索引
对不起,你错过了点。由于您的所有函数都是 ,使用从1到n的索引,其中n可以是100,因此绝对不要使用数组索引为零的 元素。这意味着您将在阵列中使用的最大值为 99.如果用户确实想要输入100个值,您的解决方案将无法工作。
您能否再次修复您的解决方案?
#include <iostream>
using namespace std;
int readnums(int v[]);
void findmaxmin(int v[],int n,int &mi,int &ma);
int findmidsum(int v[],int n,int mi,int ma);
int main()
{
const int ARRAYVALUE=100;
int v[ARRAYVALUE];
int n=readnums(v),mi,ma;
findmaxmin(v,n,mi,ma);
cout<<"Max= "<<ma<<endl;
cout<<"Min= "<<mi<<endl;
cout<<"Middle sum= "<<findmidsum(v,n,mi,ma)<<endl;
}
int readnums(int v[])
{
cout<<"How many numbers to enter: ";
int n=0;
cin>>n;
for(int a=1;a<=n;a++)
{
cout<<"Enter no. "<<a<<": ";
cin>>v[a];
}
return n;
}
void findmaxmin(int v[],int n,int &mi,int &ma)
{
ma=v[1];
mi=v[1];
for(int a=1;a<=n;a++)
{
if(mi>v[a])mi=v[a];
if(ma<v[a])ma=v[a];
}
}
int findmidsum(int v[],int n,int mi,int ma)
{
int s=0;
for(int a=1;a<=n;a++)
if(v[a]!=mi && v[a]!=ma)
s+=v[a];
return s;
}
那么,什么是问题?如何检查提供的索引是否在'[0,99]'范围内? – NathanOliver
您可以使用['assert()'](http://en.cppreference.com/w/cpp/error/assert)来检查传递给函数的参数。 –
基本上他说我在我的函数中使用的索引范围从1到n,而n可能是100.并且该索引需要从0到99 – MSK