| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 539 人关注过本帖
标题:运行结果不对,望各位指点
只看楼主 加入收藏
jovon
Rank: 1
等 级:新手上路
帖 子:15
专家分:7
注 册:2012-1-25
结帖率:50%
收藏
已结贴  问题点数:10 回复次数:9 
运行结果不对,望各位指点
#include<stdio.h>
void main()
{
char s;
int b=1;
while(b){
scanf("%c",&s);
if(s=='q')
    break;
else if(s>='a'&&s<='z'&&s!='q')
    printf("你输入的是小写字母!\n");
else if(s>='A'&&s<='Z')
    printf("你输入的是大写字母!\n");
else
    printf("你输入的不是字母!\n");
}
}
在gcc中编译通过,但结果有问题,比如输入A,输出结果为“你输入的是大写字母!”“你输入的不是字母!”两句话,WHY?


[ 本帖最后由 jovon 于 2012-1-25 21:08 编辑 ]
2012-01-25 21:06
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:3 
因为你输入的是A\n

重剑无锋,大巧不工
2012-01-25 21:20
jovon
Rank: 1
等 级:新手上路
帖 子:15
专家分:7
注 册:2012-1-25
收藏
得分:0 
回复 2楼 beyondyf
那该怎么修改呢?
2012-01-25 21:30
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
控制台下的格式控制本就是很困难的一件事。试试这个方式
程序代码:
#include<stdio.h>
int main()
{
    int c;
    for(;(c = getch()) != 'q';)
    {
        putchar(c);
        if(c>='a'&&c<='z'&&c!='q')
            printf("\n你输入的是小写字母!\n");
        else if(c>='A'&&c<='Z')
            printf("\n你输入的是大写字母!\n");
        else
            printf("\n你输入的不是字母!\n");
    }
    return 0;
}

重剑无锋,大巧不工
2012-01-25 21:38
墨清扬
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:294
专家分:817
注 册:2011-10-4
收藏
得分:0 
可以设置如果为换行符就不做反应

酱油实习生
2012-01-25 23:56
fourleaves
Rank: 2
等 级:论坛游民
帖 子:194
专家分:99
注 册:2010-5-8
收藏
得分:1 
别用scanf,用getche

程序代码:
#include<stdio.h>
void main()
{
char s;
int b=1;
while(b){
s=getche();
if(s=='q')
    break;
else if(s>='a'&&s<='z'&&s!='q')
    printf("你输入的是小写字母!\n");
else if(s>='A'&&s<='Z')
    printf("你输入的是大写字母!\n");
else
    printf("你输入的不是字母!\n");
}
}

再复杂的问题也基于最简单的原理。耐心,耐心!丰富自己!等待时机!
2012-01-26 01:00
回首依依
Rank: 7Rank: 7Rank: 7
来 自:苏州
等 级:黑侠
威 望:1
帖 子:193
专家分:524
注 册:2011-12-3
收藏
得分:3 
#include<stdio.h>
 void main()
 {
 char s;
 int b=1;
 while(b){
 scanf("%c",&s);
 getchar();/*用于清除回车*/
 if(s=='q')
     break;
 else if(s>='a'&&s<='z'&&s!='q')
     printf("你输入的是小写字母!\n");
 else if(s>='A'&&s<='Z')
     printf("你输入的是大写字母!\n");
 else
     printf("你输入的不是字母!\n");
 }
 }
 
2012-01-26 10:07
C菜青虫
Rank: 1
等 级:新手上路
帖 子:2
专家分:3
注 册:2012-1-19
收藏
得分:3 
#include<stdio.h>
void main()
{
char s;
int b=1;
while(b){
scanf("%c",&s);
getchar();   //清除回车符
if(s=='q')
 break;
else if(s>='a'&&s<='z'&&s!='q')
 printf("你输入的是小写字母!\n");
else if(s>='A'&&s<='Z')
 printf("你输入的是大写字母!\n");
else
 printf("你输入的不是字母!\n");
}
}
2012-01-26 10:07
jovon
Rank: 1
等 级:新手上路
帖 子:15
专家分:7
注 册:2012-1-25
收藏
得分:0 
7楼8楼的方法最简单,问题解决了,感谢各位回帖帮忙的朋友。
2012-01-26 21:19
yxiangyxiang
Rank: 3Rank: 3
来 自:/\/\/\/\/
等 级:论坛游侠
帖 子:130
专家分:186
注 册:2012-1-29
收藏
得分:0 
不要循环
#include<stdio.h>
void main()
{
char s;

scanf("%c",&s);
if(s>='a'&&s<='z'&&s!='q')
    printf("你输入的是小写字母!\n");
else if(s>='A'&&s<='Z')
    printf("你输入的是大写字母!\n");
else
    printf("你输入的不是字母!\n");
}
2012-02-02 12:44
快速回复:运行结果不对,望各位指点
数据加载中...
 
   



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

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