| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1622 人关注过本帖
标题:求助:用C编这个程序
只看楼主 加入收藏
I520C
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-7-4
结帖率:100%
收藏
 问题点数:0 回复次数:15 
求助:用C编这个程序
题:编写一程序,其功能如下:
  若输入T,显示一行“欢迎您,老师!”,并提示可以继续输入;
  若输入S,显示一行“欢迎您,学生!”,并提示可以继续输入
  若输入W,显示一行“欢迎您,工人!”,并提示可以继续输入;
  若输入的是其他字符,则退出整个程序  

 谢谢!
搜索更多相关主题的帖子: 工人 其他 
2008-10-08 08:03
qfyzy
Rank: 2
等 级:论坛游民
威 望:1
帖 子:380
专家分:86
注 册:2008-2-17
收藏
得分:0 
我只能说建议LZ好好看看书

当对C的经验增加时,它会显的很好用.----Dennis M Ritche如是说
2008-10-08 08:04
hxlou520
Rank: 1
来 自:中國_廈門
等 级:新手上路
帖 子:116
专家分:0
注 册:2008-8-29
收藏
得分:0 
LZ看看書,有case語句就可以完成了~

只要我用心,沒有不成功.
在學習中不斷失敗,必然是提高自己的一種手段.
2008-10-08 08:47
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
不用 case ,用 if……else if 就可以了
程序代码:
/*******************************************************************************

        题:编写一程序,其功能如下:
  若输入T,显示一行“欢迎您,老师!”,并提示可以继续输入;
  若输入S,显示一行“欢迎您,学生!”,并提示可以继续输入
  若输入W,显示一行“欢迎您,工人!”,并提示可以继续输入;
  若输入的是其他字符,则退出整个程序  

    谢谢!

*******************************************************************************/

#include<stdio.h>
int main(void)
{
    char c;
    while(1)
    {
        scanf("%c",&c);
        getchar();
        if(c=='T')          printf("欢迎您,老师!\n请继续输入:\n");
        else if(c=='S')     printf("欢迎您,学生!\n请继续输入:\n");
        else if(c=='W')     printf("欢迎您,工人! \n请继续输入:\n");
        else    break;
    }
    return 0;
    getch();
}
2008-10-08 23:56
I520C
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-7-4
收藏
得分:0 
请问那行getchar();在程序是什么意思呀。 我试了一下,缺了那行getchar() 就编不出了 。  我查了函数表,上面只是说getchar函数的功能是从键盘上输入一个字符。其一般形式为: getchar(); 通常把输入的字符赋予一个字符变量,构成赋值语句。和getch();的区别就是带不带回显。可换成getch(); 就编不了了。
2008-10-15 18:27
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
这里的getchar()的功能是把从scanf输入时敲入的,存在键盘缓存区中的回车符给吃掉,以免影响程序正常运行。如不用回显,这么写也可以:
程序代码:
#include<stdio.h>
int main(void)
{
    char c;
    while(1)
    {
        c=getch();
        if(c=='T')          printf("欢迎您,老师!\n请继续输入:\n");
        else if(c=='S')     printf("欢迎您,学生!\n请继续输入:\n");
        else if(c=='W')     printf("欢迎您,工人! \n请继续输入:\n");
        else    break;
    }
    return 0;
    getch();
}
收到的鲜花
  • liyanhong2008-10-15 21:24 送鲜花  5朵   附言:我很赞同
2008-10-15 21:22
shade1220
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2008-8-5
收藏
得分:0 
[bo][un]I520C[/un] 在 2008-10-15 18:27 的发言:[/bo]

请问那行getchar();在程序是什么意思呀。 我试了一下,缺了那行getchar() 就编不出了 。  我查了函数表,上面只是说getchar函数的功能是从键盘上输入一个字符。其一般形式为: getchar(); 通常把输入的字符赋予一个字 ...



消除回车吧

踏踏实实学习,认认真真编程
2008-10-15 21:28
I520C
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-7-4
收藏
得分:0 
[bo][un]广陵绝唱[/un] 在 2008-10-15 21:22 的发言:[/bo]

这里的getchar()的功能是把从scanf输入时敲入的,存在键盘缓存区中的回车符给吃掉,以免影响程序正常运行。如不用回显,这么写也可以:
#include
int main(void)
{
    char c;
    while(1)
    {
        c ...

很感谢你的回复,
那个getchar();就是用来接受回车的,用getch();就是不带回显;那为什么第一个程序有两个输入函数(ch=getchar(); getchar()) ,而第2个就只有一个输入函数(getch())呢?所以我还是不太明白getchar()和getch()在这个程序中的区别,还有那个键盘缓存区的意思。请你解释一下。谢谢!

[[it] 本帖最后由 I520C 于 2008-10-15 22:32 编辑 [/it]]
2008-10-15 22:30
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
~~~~~~~~~~~~~~~`

    当用 getchar() 或 scanf 时,输入完毕,都要敲一下回车键才完成输入,所以这个回车符就被存到键盘缓存区中,当遇到下一个输入语句时,就会被程序当作输入符号输入。

    当用 getch() 时,输入字符后不用回车,直接就可以被输入,所以也不存在缓存区的问题。

    也可以在 scanf 前加上fflush(stdin); 来实现这样的功能。

--------------------

    关于键盘缓存,可以参考这个:http://zhidao.baidu.com/question/3743986.html?fr=qrl&fr2=query&adt=0_866
2008-10-15 22:43
xin99v
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2008-9-28
收藏
得分:0 
厉害
好贴,,,很好的答复
2008-10-15 23:00
快速回复:求助:用C编这个程序
数据加载中...
 
   



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

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