はるはるはる 2017-11-27 15:07 采纳率: 0%
浏览 4372

请问我怎么把最后一行的换行去掉?

#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;
}图片图片图片

  • 写回答

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")

    评论

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置