#15538: 請問為何輸入5跟35時輸出值是55?


fdhs10838030 (巫以瑄)


請問為何輸入5跟35時輸出值是55?

我檢查過程序 但找不到原因 請求各位的協助 謝謝

#include<iostream>
#include<math.h>
using namespace std;
int main()
{
int a;
int sum=0;
while(cin>>a)
{
for(int b=1;b<=a;b++)
{
int x,y;
cin>>x>>y;
for(int k=1;k<=sqrt(y);k++)
{
if(x<=k*k&&y>=k*k)
{
sum=sum+k*k;
}

}
cout<<"Case "<<b<<": "<<sum<<endl;
}
}
return 0;
}

#15539: Re:請問為何輸入5跟35時輸出值是55?


OwO310659 (OwO)


你的 sum 並沒有歸零,
所以輸入下一筆測資時還會保留著上一筆測資的紀錄唷~

希望有幫助到你~  OwO

#23726: Re:請問為何輸入5跟35時輸出值是55?


chengenl20@gmail.com (林呈恩)


你的 sum 並沒有歸零,
所以輸入下一筆測資時還會保留著上一筆測資的紀錄唷~

希望有幫助到你~  OwO

sum計算完要初始化為0

#23727: Re:請問為何輸入5跟35時輸出值是55?


chengenl20@gmail.com (林呈恩)


請問為何輸入5跟35時輸出值是55?

我檢查過程序 但找不到原因 請求各位的協助 謝謝

#include
#include
using namespace std;
int main()
{
int a;
int sum=0;
while(cin>>a)
{
for(int b=1;b<=a;b++)
{
int x,y;
cin>>x>>y;
for(int k=1;k<=sqrt(y);k++)
{
if(x<=k*k&&y>=k*k)
{
sum=sum+k*k;
}

}
cout<<"Case "<<b<<": "<<sum<<endl;
}
}
return 0;
}


計算完一次初始化一次