#include
int main()
{
int a,i,sum;
for(a=0;a<=1000;a++)
{
sum=0;
for(i=1;i<a;i++)
if(a%i==0)
sum+=i;
if(i==a)
if(sum==a)
{
printf("%d its factors are ",a);
for(i=1;i<a;i++)
{
if(a%i==0)
{
if(i==1)
printf("%d",i);
else
printf(",%d",i);
}
}
if(i==a)
printf("\n");
}
}
return 0;
}
请问我怎么把最后一行的换行去掉?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
6条回答 默认 最新
- 清风不识字12138 2017-11-28 01:35关注
首先你的程序中for循环嵌套的有点多,其次你的第二个for循环和第三个for循环都是定义了i为循环值,这个容易出错,也不易读。
还有就是你的printf("\n")的判断条件是多余的,最内层(第三个)for循环结束的条件就是i==a,所以从for循环结束后的if(i == a )
始终为真,这个判断条件完全可以去掉。
然后你的问题是想把最后一个换行去掉,你可以把判断是否换行的语句换个位置将它放在printf("%d its factors are ", a)语句之前,
这样做就不会在最后一行进行换行,但是会在第一行换行,你可以将判断条件再改成if(a!=6) printf("\n")解决 2无用
悬赏问题
- ¥15 c程序不知道为什么得不到结果
- ¥40 复杂的限制性的商函数处理
- ¥15 程序不包含适用于入口点的静态Main方法
- ¥15 素材场景中光线烘焙后灯光失效
- ¥15 请教一下各位,为什么我这个没有实现模拟点击
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置