运行没有问题,但是为什么达不到效果呢?
#include<iostream> #include <string>
using namespace std;
void input(int n,int *p1,int *p2,int *p3,string *s)
{
int i=0;
for(i=0;i<n;i++)
{
cin >>p1[i];
}
for(i=0;i<n;i++)
{
cin >>p2[i];
}
for(i=0;i<n;i++)
{
cin >>p3[i];
}
for(i=0;i<n;i++)
{
getline(cin,s[i]);
}
}
void output(int n,int *p1,int *p2,int *p3,string *s)
{
int *a,i,sum=0,j=0;
a=new int[n];
for(i=0;i<n;i++)
{
a[i]=(p3[i]*p2[i]-p3[i]*p1[i]);
if(a[i]>sum)
{
sum=a[i];
j=i;
}
}
if(sum>0)
cout <<s[j]<<endl;
else
cout <<endl;
delete []a;
}
int main()
{
int n;
cin >>n;
int *p1,*p2,*p3;
string *s;
p1=new int[n];
p2=new int[n];
p3=new int[n];
s=new string[n];
input(n,p1,p2,p3,s);
output(n,p1,p2,p3,s);
delete []p1;
delete []p2;
delete []p3;
delete []s;
return 0;
}
在下面这个问题中,已知生产花费,当前市价,每种货物的数目,货物名称,需要求出生产哪种产品利润是最大的。如果没有一种产品能带来利润,则输出一个空行。