自己编的一个c++程序高手帮忙修改一下

2024-12-16 03:36:59
推荐回答(5个)
回答1:

排序的函数在哪里?max只是找到最大值。
错误太多;
一:数组作为参数,
int max(int a[n1]),这个函数的定义,n1在哪里?前面没有声明。
可以这样制定数组参数及数组的长度:int max( int a[], int length )
或者为指针:int max( int* pa, int length )
二:数组的定义
int a[n1]; 这样定义数组长度必须是编译期间确定的,即为常数或者是const常量
要想定义位置长度的数组,可以用new:
int* pa = new int[n1].
程序结束前需要delete[] pa;
三:变量名不能重复。
int a[n1];float a[n2];double a[n3];
3个变量都是a,怎么行
四:数组的遍历
for(i=0;icin>>a[n2]; //这里n2应该为i

我改为以下,程序正确运行:
#include
using namespace std;
int max(int a[], int n)
{
int i,m1=a[0];
for(i=1;i if(m1 m1=a[i];
return m1;
}

float max(float a[], int n )
{
int i;
float m2=a[0];
for(i=1;i if(m2 m2=a[i];
return m2;
}

double max(double a[], int n)
{
int i;
double m3=a[0];
for(i=1;i if(m3 m3=a[i];
return m3;
}

int main()
{
int n1,n2,n3,i;
cout<<"分别输入三个数组的长度:\n";
cin>>n1>>n2>>n3;
//int a[n1];float a[n2];double a[n3];
int* paInt = new int[n1];
float* paFloat = new float[n2];
double* paDouble = new double[n3];

cout<<"输入"< for(i=0;i cin>>paInt[i];

cout<<"输入"< for(i=0;i cin>>paFloat[i];

cout<<"输入"< for(i=0;i cin>>paDouble[i];

int maxInt =max( paInt, n1);
float maxFloat = max( paFloat, n2 );
double maxDouble =max( paDouble, n3 );
cout<<"三个最大值分别为:"< cout<
delete[] paInt;
delete[] paFloat;
delete[] paDouble;

system( "pause" );
return 0;
}

回答2:

#include
using namespace std;
int max(int a[],int n)
{int i,m1=a[0];
for(i=1;i if(m1 m1=a[i];
return m1;
}
float max(float a[],int n)
{int i;
float m2=a[0];
for(i=1;i if(m2 m2=a[i];
return m2;
}
double max(double a[],int n)
{int i;
double m3=a[0];
for(i=1;i if(m3 m3=a[i];
return m3;
}
int main()
{
int n1,n2,n3,i;
cin>>n1>>n2>>n3;
int a1[100];
float a2[100];double a3[100];
for(i=0;i cin>>a1[i];
for(i=0;i cin>>a2[i];
for(i=0;i cin>>a3[i];
int m;
m=max(a1,n1);
float n;
n=max(a2,n2);
double p;
p=max(a3,n3);
cout< return 0;
}
根据你的代码改的...但是整个思想不大好...float和double重载一个就可以了..三个数组用new来开辟具体空间更灵活,函数传送数组时是不知道数组大小的,所以要加数组大小的参数 。
这是我做的
#include
using namespace std;
int max(int a[],int n)
{
int i,m1=a[0];
for(i=1;i if(m1 m1=a[i];
return m1;
}
double max(double a[],int n)
{
int i;
double m2=a[0];
for(i=1;i if(m2 m2=a[i];
return m2;
}
int main()
{
int n1,n2,i;
cout<<"请输入整数数组元素个数,浮点型数组元素个数"< cin>>n1>>n2;
int *a1=new int[n1];
double *a2=new double[n2];
if(NULL!=a1&&NULL!=a2)
{
cout<<"请输入"< for(i=0;i cin>>a1[i];
cout<<"请输入"< for(i=0;i cin>>a2[i];
int m;
m=max(a1,n1);
double p;
p=max(a2,n2);
cout< }
delete[] a2;
a2=NULL;
delete[] a1;
a1=NULL;
return 0;
}

回答3:

函数参数有问题,不需要指定数组大小,用个指针就行。另外加个参数,说明数组数量好了,这样程序的灵活性更好。另外,float不需要,double够了

回答4:

#include
using namespace std;
int max(int* a)
{int i=1,m1=*a;
for(i;i<=5;i++)
{ if(m1<*a)
{ m1=*a;
a++;}
else
a++;
}
return m1;
}
float max(float* a)
{int i=1;
float m1=*a;
for(i;i<=5;i++)
{ if(m1<*a)
{ m1=*a;
a++;}
else
a++;
}
return m1;
}
double max(double* a)
{int i=1;
double m1=*a;
for(i;i<=5;i++)
{ if(m1<*a)
{ m1=*a;
a++;}
else
a++;
}
return m1;
}
int main()
{ int i;
int a[5];
float b[5];
double c[5];
for(i=0;i<5;i++)
cin>>a[i];
for(i=0;i<5;i++)
cin>>b[i];
for(i=0;i<5;i++)
cin>>c[i];
int m;
m=max(a);
float n;
n=max(b);
double p;
p=max(c);
cout<return 0;
}
数组的长度只能用常量表达式来声明。

回答5:

cin>>n1>>n2>>n3;
int a[n1];float a[n2];double a[n3];
就不可以这么用数组。错误太多了、、、