for (i = 0; i < n; i++) {
num += a[i];
if (num <= v) { b++; }
else break;
}
printf("%d\n", b);
return 0;
}
排序那里要两个循环
#include<stdio.h>
#include<math.h>
int main()
{
int n, v, i,j, num, b, c, a[1000];
i = num = b = 0;
scanf("%d%d", &n, &v);
for (i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
for (i = 0; i < n-1; i++)//排序
{
for (j = 0; j < n-i-1; j++)
{
if (a[j] > a[j + 1])
{
c = a[j];
a[j] = a[j + 1];
a[j + 1] = c;
}
}
}
for (i = 0; i < n; i++)
{
num += a[i];
if (num <= v)
{
b++;
}
else break;
}
printf("%d\n", b);
return 0;
}