C++ 马克斯;C+中的最小1函数+;
输出C++ 马克斯;C+中的最小1函数+;,c++,function,c++17,C++,Function,C++17,输出 6 -80 800 -8000 -800 80 8000 在初始化之前,您正在使用n(在inti,n,a[n];和a[0]) *(a+i)=max;和*(a+i)=min;应该是max=*(a+i);和min=*(a+i);更新max和min 可变长度数组不在标准C++中。 #包括 使用名称空间std; 国际货币基金组织(国际货币基金组织[],国际货币基金组织) { int i,max,min;//max和min有问题 对于(i=0;i>*(a+i); 如果(i==0) { max
6
-80 800 -8000 -800 80 8000
- 在初始化之前,您正在使用
(在n
和inti,n,a[n];
)a[0]
和*(a+i)=max;
应该是*(a+i)=min;
和max=*(a+i);
更新min=*(a+i);
和max
min
- 可变长度数组不在标准C++中。
#包括
使用名称空间std;
国际货币基金组织(国际货币基金组织[],国际货币基金组织)
{
int i,max,min;//max和min有问题
对于(i=0;i>*(a+i);
如果(i==0)
{
max=min=a[0];
}
其他的
{
如果(*(a+i)>max)max=*(a+i);
如果(*(a+i)int i,n,a[n];
是未定义的行为。因为a
是在n
初始化之前创建的。*(a+i)=max
您想修改哪一个?您的函数应该返回int
,但它不返回任何内容。这也是UB。您不需要数组,并且正在赋值“向后”。还需要翻转*(a+i)=max
->max=*(a+i)
。为清晰起见,请将*(a+i)
s更改为a[i] S>代码> STD::向量可以避免这里的丑陋分配,但这可能是另一个蠕虫的分配。我也会分裂收集输入,计算MI/Max。实际上,我的老师不想让我使用向量2他想要我2使用C或指针混搭的简单数组和来自C++的东西。
6
-80 800 -8000 -800 80 8000
max is 4253776 min is 4253776
# include<iostream>
using namespace std;
int ma_mi(int a[],int n)
{
int i,max,min; // problem with max and min
for(i=0;i<n;i++)
{
cin>>*(a+i);
if(i==0)
{
max = min = a[0];
}
else
{
if (*(a+i)>max) max=*(a+i);
if (*(a+i)<min) min=*(a+i);
}
}
cout<<"max is"<<' '<<max<<' '<<"min is"<<' '<<min;
}
int main()
{
int i,n;
cin>>n;
int* a = new int[n];
ma_mi(a,n);
delete[] a;
}