| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 704 人关注过本帖
标题:输出字符的问题
只看楼主 加入收藏
人生如梦似的
Rank: 1
等 级:新手上路
帖 子:16
专家分:5
注 册:2011-4-10
结帖率:100%
收藏
 问题点数:0 回复次数:13 
输出字符的问题
#include<stdio.h>
main()
{char[]="tudent",c;
int k;
for(k=1;(c=str[k])!=‘0’;k++)
{switch(c)
case't':putchar(‘#’);
case 'n':putchar('$');break;
default:continue;
}

putchar('*')
}
本人的结果
$*#$*
求高手把此题解释下!
搜索更多相关主题的帖子: default continue 
2011-04-19 18:11
a654548060
Rank: 2
等 级:论坛游民
帖 子:18
专家分:10
注 册:2010-3-30
收藏
得分:0 
#include<stdio.h>
void main()
{
char str[]="tudent";
char c;
int k;
for(k=1;(c=str[k])!='0';k++)
{
    switch(c)
    {
   case 't':putchar('#');
   case  'n':putchar('$');break;
   default:continue;
       }
}

putchar('*');
}
2011-04-19 18:21
小鱼儿c
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:852
专家分:1317
注 册:2011-4-1
收藏
得分:0 
你的代码怎么到处都是问题啊.有中文字符。
swtich()你少了一个大括号啊。
‘0’我想不是0吧,是\0吧。
不管怎么样,这题主要考数组 是从0开始,但你把k定为1;那么字符串相当于undent,然后根据代条件输出字符。
如果你case t 那里不是你掉的话,也是一个考点。只要满足t就会输出#$。
明白这些,做这题就不难了啊

用心做一件事情就这么简单
2011-04-19 18:28
略懂一点
Rank: 1
等 级:新手上路
帖 子:5
专家分:2
注 册:2011-4-17
收藏
得分:0 
case后面还得有一个空格。
2011-04-19 18:31
linw1225
Rank: 3Rank: 3
来 自:福建
等 级:论坛游侠
帖 子:110
专家分:145
注 册:2011-4-7
收藏
得分:0 
回复 楼主 人生如梦似的
你所给的代码是错误的,正确的如下:
#include<stdio.h>
void main()
{
    char str[]="tudent";
    char c;
    int k;
   
    for(k=1;(c=str[k])!='\0';k++)
    {
        switch(c)
        {
        case't':putchar('#');
        case 'n':putchar('$');break;
        default:continue;
        }
        
        putchar('*');
    }
}
运行该程序,结果是$*#$*

解释:(我是大一的,刚学,希望你能听得懂)
for(k=1;(c=str[k])!='\0';k++)
    {
        switch(c)
        {
        case't':putchar('#');
        case 'n':putchar('$');break;
        default:continue;
        }
        
        putchar('*');
    }
k=1,就跳过的字符数组的第一个字符,直接判断第二个字符,就是字符u
k=1时判断字符u,switch语句里面没有符合条件的,执行default:continue;结束本次循环
k=2时,情况同上
知道k=4,即字符为n时,符合条件执行case 'n':putchar('$');break; break跳出switch语句然后继续执行putchar('*');
k=5时,字符为t,符合条件执行case't':putchar('#');该语句后面没有break结束,继续执行case 'n':putchar('$');break;  然后执行putchar('*');
k=6时,(c=str[k])!='\0'不符合条件结束for循环。

Einmal ist keinmal
2011-04-19 19:07
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
楼主的编译器好强大,这样的代码都能编
2011-04-19 19:07
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
好没意思  是要考switch吗  麻烦把每个写完每个

case之前先加上break  

                                         
===========深入<----------------->浅出============
2011-04-19 19:09
ruinh
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-4-14
收藏
得分:0 
。。。。。
2011-04-19 20:36
人生如梦似的
Rank: 1
等 级:新手上路
帖 子:16
专家分:5
注 册:2011-4-10
收藏
得分:0 
回复 5楼 linw1225
我的答案和你的是一样的可是被老师无情的打叉了!
2011-04-19 21:55
人生如梦似的
Rank: 1
等 级:新手上路
帖 子:16
专家分:5
注 册:2011-4-10
收藏
得分:0 
回复 6楼 voidx
主要是表达的意思,小节就不拘了!
2011-04-19 21:57
快速回复:输出字符的问题
数据加载中...
 
   



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

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