| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 853 人关注过本帖
标题:谁能帮我看一下 为什么会输出这样的结果
只看楼主 加入收藏
lzxm160
Rank: 1
等 级:新手上路
帖 子:103
专家分:0
注 册:2006-12-26
收藏
 问题点数:0 回复次数:2 
谁能帮我看一下 为什么会输出这样的结果
#include<stdio.h>
    void main()
    { static char s[]="SSSWiL TECH1\1\11W\1WALLMP1";
      int j;
      char ch;       clrscr();
      for(j=2;(ch=s[j])!='\0';j++)
      { switch(ch)
          { case 'A':putchar('a');continue;
        case '1':break;
        case 1:while((ch=s[++j])!='\n'&&ch!='\0');
        case 9:putchar('#');
        case 'E':
        case 'L':continue;
        default:putchar(ch);continue;
          }
          putchar('*');
      }
      printf("\n");
    }



输出:SWI TCH*#这个是TC运行结果  可是为什么会是*#呢
搜索更多相关主题的帖子: case putchar continue 结果 输出 
2008-01-16 21:11
way3
Rank: 1
来 自:湖南
等 级:新手上路
帖 子:83
专家分:0
注 册:2007-12-8
收藏
得分:0 
仔细想一下,     putchar('*');也是for循环的一部分,在循环的过程中弄明白什么情况下会运行到这一语句来,什么时候不会运行到这一语句来就会知道了.

[[italic] 本帖最后由 way3 于 2008-1-16 21:58 编辑 [/italic]]
2008-01-16 21:57
nobush
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2008-1-10
收藏
得分:0 
呵呵,開始我也被結果嚇了一跳。
仔細一看:
遇到字符1 只是退出了switch 沒有退出for
而遇到數字1 則跳過了所有字符,但沒有退出,所以才有了下一行的 #
2008-01-17 01:40
快速回复:谁能帮我看一下 为什么会输出这样的结果
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015905 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved