nilianrose @ 2017-09-09 21:56:01
神犇大人请留步
帮忙看一下,同样的循环,为啥顺序相反
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, s, x, y, h, i, j, k;//n苹果数,s力气,x身高,y凳子高, h总高
int count = 0;//记录苹果数
int z = 0;//最大高度
scanf("%d %d",&n,&s);//赋值
scanf("%d %d",&x,&y);//赋值
h = x + y;
int a[1000];
int b[1000];
for(int i = 0;i < n;i++)
{
scanf("%d %d",&a[i],&b[i]);//循环赋值
}
for(i = n - 1;i >= 0;i--)
{
for(j = i - 1;j >= 0;j--)
{
if(a[j] > a[i])
{
k = a[i];
a[i] = a[j];
a[j] = k;
k = b[i];
b[i] = b[j];
b[j] = k;
}
}
}//按需要高度排一遍 for(i = 0;h <= a[i];i++)
{
z++;
}//记录最大高度
for(i = z - 1;i >= 0;i--)
{
for(j = i - 1;j >= 0;j--)
{
if(a[j] > a[i])
{
k = a[i];
a[i] = a[j];
a[j] = k;
k = b[i];
b[i] = b[j];
b[j] = k;
}
}
}//按需要力气大小排一遍
// for(i = 0;i < z;i++)
// {
// if(h < a[i] || s < b[i])
// {
// break;
// }//已排好,一个大后面的也大
// s -= b[i];//符合条件力气--
// count++;//苹果++
// }
// printf("%d",count);
for(i = 0;i < n ;i++)
{
printf("%d %d\n",a[i],b[i]);
}//调试用的 return 0;
}
by 杨奕辉 @ 2017-09-11 20:49:57
看不懂c++,是dp党的