Bambam. 2022-03-25 22:55 采纳率: 60%
浏览 47
已结题

一道C语言的程序运行算法的题

#include<stdio.h>
void main()
{
int i,a=0,b=0;
for(i=1;i<10;i++)
{
if(i%2==0)
{
a++;
continue;
}
b++;
}
printf("a=%d,b=%d",a,b);
}
这个的输出结果是a=4,b=5
我不明白的是,定义a的变量是0当if语句成立a就执行了a++,可为什么结果是4,同理当if语句不成立的时候为什么b++的结果是5?

  • 写回答

6条回答 默认 最新

  • 春休夏末 2022-03-25 23:13
    关注

    i的值变化为 1 2 3 4 5 6 7 8 9 总共会进入循环9次
    其中 i%2 == 0 有 2 4 6 8 四次 所以 执行了4次 a++ a++ 就是a = a + 1 所以 i = 4
    每次a++之后执行了continue ,continue 会跳过后面的代码 直接执行for中的 i++ 所以不会执行到b++,b不会变化
    其中 i%2 != 0的情况有 1 3 5 7 9 5次 所以执行了5次 b++ 所以 b = 5

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 4月3日
  • 已采纳回答 3月26日
  • 创建了问题 3月25日

悬赏问题

  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加
  • ¥15 用ns3仿真出5G核心网网元
  • ¥15 matlab答疑 关于海上风电的爬坡事件检测
  • ¥88 python部署量化回测异常问题
  • ¥30 酬劳2w元求合作写文章
  • ¥15 在现有系统基础上增加功能
  • ¥15 远程桌面文档内容复制粘贴,格式会变化