#include<iostream>
#include<string>
#include<algorithm>
#include<cstring>
using namespace std
int data[100000]
int dp[100000]
int num
bool Change(string s)
{
for(int i=0i<s.size()+1)
{
if(s[i]<='9'&&s[i]>='0')
{
int t=0
while(s[i]<='9'&&s[i]>='0')
{
t=t*10+s[i]-'0'
i++
}
data[num++]=t
}
else if(s[i]==' '||i==s.size())
{
i++
continue
}
else{
return false
}
}
return true
}
int main()
{
string s
while(getline(cin,s))
{
num=0
bool flag=Change(s)
if(!flag)
{
cout<<"ERROR"<<endl
continue
}
/* for(int i=0i<numi++)
{
cout<<data[i]<<" "
}*/
memset(dp,0,sizeof(dp))
int sum=0
for(int i=0i<numi++)
{
sum+=data[i]
}
int half=sum/2
// cout<<half<<endl
for(int i=0i<numi++)
{
for(int j=halfj>=data[i]j--)
{
dp[j]=max(dp[j],dp[j-data[i]]+data[i])
}
}
cout<<sum-dp[half]<<" "<<dp[half]<<endl
}
}
按你要求空瓶倒
#include<stdio.h>int main()
{
int num[3],numSave,i,j
printf("请输入3个数:")
scanf("%d%d%d",&num[0],&num[1],&num[2])
for(i=0i<3i++)
{
for(j=i+1j<3j++)
{
if(num[i]>num[j])
{
numSave=num[i]
num[i]=num[j]
num[j]=numSave
}
}
}
printf("从小到大排列:%d %d %d",num[0],num[1],num[2])
return 0
}