这条题目怎么做?是怎么运行的。求高手解答。
#include<stdio.h>main(){inti;for(i=0;i<=5;i++)switch(i%2){case0:i++;printf("#");break...
#include<stdio.h>
main()
{
int i;
for(i=0;i<=5;i++)
switch(i%2)
{
case 0: i++; printf("#");break;
case 1: i+=2;printf("*");
default : printf("\n");
}
}
第五行是for(i=1;i<=5;i++) 展开
main()
{
int i;
for(i=0;i<=5;i++)
switch(i%2)
{
case 0: i++; printf("#");break;
case 1: i+=2;printf("*");
default : printf("\n");
}
}
第五行是for(i=1;i<=5;i++) 展开
4个回答
展开全部
i=0,由于满足i<=5执行switch语句
i%2=0,走case 0: i++等于1,打印一个#后继续循环,至此输出为: #
循环语句i++等于2,由于满足i<=5执行switch语句
i%2=0,走case 0: i++等于3,打印一个#后继续循环,至此输出为: ##
循环语句i++等于4,由于满足i<=5执行switch语句
i%2=0,走case 0: i++等于5,打印一个#后继续循环,至此输出为: ###
循环语句i++等于6,由于不满足i<=5退出循环
最终程序输出为三个连续的井号(没有换行)
如果第5行的条件变成for(i=1;i>=5;i++)
i=1,由于不满足i>=5结束循环退出,不打印任何东西
i%2=0,走case 0: i++等于1,打印一个#后继续循环,至此输出为: #
循环语句i++等于2,由于满足i<=5执行switch语句
i%2=0,走case 0: i++等于3,打印一个#后继续循环,至此输出为: ##
循环语句i++等于4,由于满足i<=5执行switch语句
i%2=0,走case 0: i++等于5,打印一个#后继续循环,至此输出为: ###
循环语句i++等于6,由于不满足i<=5退出循环
最终程序输出为三个连续的井号(没有换行)
如果第5行的条件变成for(i=1;i>=5;i++)
i=1,由于不满足i>=5结束循环退出,不打印任何东西
更多追问追答
追问
我稍微有点儿懂了,请问不管i是奇偶数,是不是都要自增两回?for里面有个i++,case后面有i++和i+=2?
追答
对的,由于又在循环中执行过一个i++所以i增加两次
展开全部
#include<stdio.h>
main()
{
int i;
for(i=0;i<=5;i++) //for循环从0到5
switch(i%2) //用i对2取余
{
case 0: //如果是0,即i是偶数
i++; //i自增1,i又变成奇数
printf("#"); //打印一个'#'
break; //跳出switch语句
case 1: //如果是1,即i是奇数
i+=2; //i自增2,i还是奇数
printf("*"); //打印一个'*'
default :
printf("\n"); //接着打印一个回车
}
}
实际上switch语句,不可能走到case 1和default分支。
因为当i是偶数的时候,i在switch里自增1变成奇数,然后一次for循环结束i还会再自增1,又变成偶数。下一次执行i%2的结果还是0。
所以这个程序的运行结果是输出三个'#'
###
追问
我懂了,谢谢你啦。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
循环6次,
如果遇到偶数,输出# 次数+1如果遇到奇数输出* 次数加2
输出结果为
#***
即i=0输出# i++ ; i=1输出* i+2;
i=3 输出* i+2 i=5输出* i+2
有什么不明白的请追问。
如果遇到偶数,输出# 次数+1如果遇到奇数输出* 次数加2
输出结果为
#***
即i=0输出# i++ ; i=1输出* i+2;
i=3 输出* i+2 i=5输出* i+2
有什么不明白的请追问。
更多追问追答
追问
题目不变的话你的答案是错的。。。是###,现在改了。再帮我看看
追答
少算了一个加1.。。。。把循环的给落下了。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先你输入i的值 因为i初值为0 i<=5成立 所以运行switch(i%2)既是求余数 所以0%2=0 所以运行case 0: i++; printf("#");输出# 然后跳出switch循环 继续for(i=0;i<=5;i++) 同理即可 感觉他的对@mornslit
追问
谢谢你啦。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询