#include
using namespace std;
int main()
{
int m,i,l,r,sum=0,temp;
scanf("%d",&m);
for(i=0;i<m;i++)
{ scanf("%d%d",&l,&r);
if(l>r)
{temp=l,l=r,r=temp;}
l++;
for(;l<r;l++)
{ if(l%2)
sum=sum+l;
}
printf("%d\n",sum);
}
return 0;
}
每次计算的时候,需要把sum重置为0
在for循环中,scanf前面加一句 sum = 0;
如下:
#include <iostream>
using namespace std;
int main()
{
int m,i,l,r,sum=0,temp;
scanf("%d",&m);
for(i=0;i<m;i++)
{
sum = 0;
scanf("%d%d",&l,&r);
if(l>r)
{
temp=l,l=r,r=temp;
}
l++;
for(;l<r;l++)
{
if(l%2)
sum=sum+l;
}
printf("%d\n",sum);
}
return 0;
}
每次计算开始sum 都要重置为 0,
你题目的解答代码如下:
#include <iostream>
using namespace std;
int main()
{
int m, i, l, r, sum = 0, temp;
scanf("%d", &m);
for (i = 0; i < m; i++)
{
scanf("%d%d", &l, &r);
if (l > r)
{
temp = l, l = r, r = temp;
}
l++;
sum = 0; // 每次计算开始sum 都要重置为 0,
for (; l < r; l++)
{
if (l % 2)
sum = sum + l;
}
printf("%d\n", sum);
}
return 0;
}
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
在每次循环之前将sum归零,不然上次结果还存留在sum中。
#include
using namespace std;
int main()
{
int m,i,l,r,sum=0,temp;
scanf("%d",&m);
for(i=0;i<m;i++)
{
scanf("%d%d",&l,&r);
if(l>r){
temp=l,l=r,r=temp;
}
l++;
for(;l<r;l++){
if(l%2)
sum=sum+l;
}
printf("%d\n",sum);
}
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!