#include<stdio.h>
int main()
{
int n,i,count=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
if(i>=1&&i<10)
{
if(i%10==0||i%10==2||i%10==1||i%10==9)
count+=i;
}
else if(i>=10&&i<100)
{
if(i%10==2||i/10==2||i%10==0||i%10==1||i/10==1||i%10==9||i/10==9)
count+=i;
}
else if(i>=100&&i<1000)
{
if(i%10==2||i/10%10==2||i/100==2||i%10==0||i%10/10==0||i%10==1||i/10%10==1||i/100==1||i%10==9||i/10%10==9||i/100==9)
count+=i;
}
else if(i>=1000&&i<10000)
{
if(i%10==2||i/10%2==2||i/100%10==2||i/1000||i%10==0||i/10%10==0||i/100%10==0||i%10==1||i/10%10==1||i/100%10==1||i/1000==1||i%10==9||i/10%10==9||i/100%10==9||i/1000==9)
count+=i;
}
printf("%d",count);
return 0;
}
}
假如你只是输入最终结果的话,你那个输出printf(....) 应该放在循环外面执行,
因为你把
printf("%d",count); return 0;
写到了for循环里面,导致for循环只执行一次。
你把它放在for外面就OK了
#include<stdio.h>
int main()
{
int n,i,count=0;
scanf("%d",&n);
if(i>=1&&i<10)
{ for(i=1;i<=n;i++)
if(i%10==2||i%10==1||i%10==9)
count+=i;
}
else if(i>=10&&i<100)
{ for(i=1;i<=n;++i)
if(i%10==2||i/10==2||i%10==0||i%10==1||i/10==1||i%10==9||i/10==9)
count+=i;
}
else if(i>=100&&i<1000)
{ for(i=1;i<=n;i++)
if(i%10==2||i/10%10==2||i/100==2||i%10==0||i%10/10==0||i%10==1||i/10%10==1||i/100==1||i%10==9||i/10%10==9||i/100==9)
count+=i;
}
else if(i>=1000&&i<10000)
{ for(i=1;i<=n;++i)
if(i%10==2||i/10%2==2||i/100%10==2||i/1000||i%10==0||i/10%10==0||i/100%10==0||i%10==1||i/10%10==1||i/100%10==1||i/1000==1||i%10==9||i/10%10==9||i/100%10==9||i/1000==9)
count+=i;
}
printf("%d",count);
return 0;
}
#include<stdio.h>
int main()
{
int n,i,count=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
if(i>=1&&i<10)
{
if(i%10==0||i%10==2||i%10==1||i%10==9)
count+=i;
}
else if(i>=10&&i<100)
{
if(i%10==2||i/10==2||i%10==0||i%10==1||i/10==1||i%10==9||i/10==9)
count+=i;
}
else if(i>=100&&i<1000)
{
if(i%10==2||i/10%10==2||i/100==2||i%10==0||i%10/10==0||i%10==1||i/10%10==1||i/100==1||i%10==9||i/10%10==9||i/100==9)
count+=i;
}
else if(i>=1000&&i<10000)
{
if(i%10==2||i/10%2==2||i/100%10==2||i/1000||i%10==0||i/10%10==0||i/100%10==0||i%10==1||i/10%10==1||i/100%10==1||i/1000==1||i%10==9||i/10%10==9||i/100%10==9||i/1000==9)
count+=i;
}
}
printf("%d",count);
return 0;
}
你的程序也可以这么写
您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y