C++编程求出1到n之间的5或9倍数的整数之和

3、求出1到n之间的5或9倍数的整数之和。n通过cin语句由用户输入确定,如果用户输入的n小于1,提示用户重新输入。
要求:使用for循环语句和do-while循环语句。
#include<iostream>
using namespace std;
int main()
{
int n,i=1,j=0;
cout<<"请输入整数:";
cin>>n;
if (n<1)
cout<<"请重新输入:";
else if(n>=1)
do
{
i++;
{
if(i%5==0||i%9==0)
i=i;
else
i=0;
{
for(;i<=n;) j+=i;
cout<<j;
}
}
}while(i<=n);
cout<<"sum="<<j<<endl;
return 0;
}

运行不出来。。求大神 QwQ

第一眼看到的问题:

if (n<1)
 cout<<"请重新输入:";

改为

if (n<1)
{
cout<<"请重新输入:";
cin>>n;
}

 最终完善:

#include<iostream>
using namespace std;
int main()
{
int n,i,j=0;

cout<<"请输入整数:";
cin>>n;

if (n<1)
{
do
{
cout<<"请重新输入:";
cin>>n;
}while(n<1);
//这里do-while的作用:你的输入如果一直小于1,就重复输入 
}

else
{
for(i=1;i<=n;i++)
{
if(i%5==0||i%9==0)
j+=i;
}
}
 cout<<"sum="<<j<<endl;
 return 0;
}

大部分时候

do-while和for可替换。

我认为区别在于for主要强调运行次数

而do-while强调运行状态;

for中的i只能为整形变量

而do-while只需判断状态即可。

如有问题,请追问

:-)

温馨提示:答案为网友推荐,仅供参考
相似回答