|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
int main()
{
int t,n,m,a[101]={0},num=0;
scanf("%d",&t);
for(int i=0;i<t;i++)
{
scanf("%d %d",&n,&m);
for(int j=0;j<m;j++)
{
scanf("%d",&a[j]);
if(n>a[j])
{
n-=a[j];
num++;
}
printf("%d\n",num);
}
return 0;
}
不知道哪里出错了,求指正
这段代码的问题在于,每次输入一个新的测试用例时,都没有将num重置为0,所以会一直累加上一次测试用例的结果。此外,printf("%d\n",num);应该放在内层循环的外面,否则会输出多个结果。
下面是修改后的代码:
- #include <stdio.h>
- int main()
- {
- int t,n,m,a[101]={0};
- scanf("%d",&t);
- for(int i=0;i<t;i++)
- {
- int num=0; //将num重置为0
- scanf("%d %d",&n,&m);
- for(int j=0;j<m;j++)
- {
- scanf("%d",&a[j]);
- if(n>a[j])
- {
- n-=a[j];
- num++;
- }
- }
- printf("%d\n",num); //将printf放在内层循环的外面
- }
- return 0;
- }
复制代码
|
|