| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1139 人关注过本帖
标题:编写以下的程序。并指出错误
只看楼主 加入收藏
描眉
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-3-12
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:19 
编写以下的程序。并指出错误
建立一个C程序文件,实现如下功能:从键盘输入一个字符,如果是大写字母就转换成小写字母,如果是小写字母就换成大写字母,其他的就原样输出。

另新手编写的:请指出错误
#include <stdio.h>
void main()
{
    char ch;
    printf("请输入一个字符:");
    scanf("%c",&ch);
    if(ch>='A'&&ch<='Z') ch=ch+32;
    if(ch>='a'&&ch<='z') ch=ch-32;
    if(ch<'A'||ch>'z'||ch<'a'||ch>'z') ch=ch;
    printf("%c\n",ch);
}
搜索更多相关主题的帖子: include 字母 
2013-04-07 20:02
巩云峰
Rank: 1
来 自:大连海事大学
等 级:新手上路
帖 子:5
专家分:3
注 册:2013-4-7
收藏
得分:2 
#include <stdio.h>
 int main()
 {
     char ch;
     printf("请输入一个字符:");
     scanf("%c",&ch);
     if(ch>='A'&&ch<='Z')
     ch=ch+32;
     else if(ch>='a'&&ch<='z')
     ch=ch-32;
     else
     ch=ch;
     printf("%c\n",ch);
 }

你的程序里面,一个括号是中文状态下的,一个分号是中文状态下的,全是特小的错误,仔细点就好了
2013-04-07 20:37
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:2 
编译器给出的错误提示可以找到这种错误的

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-04-12 06:51
我叫沃恩
Rank: 12Rank: 12Rank: 12
来 自:Asia
等 级:贵宾
威 望:10
帖 子:1234
专家分:3865
注 册:2013-3-29
收藏
得分:2 
同意楼上,细心点!

因为我是菜鸟,所以应该被骂! 细节+坚持=成功!
2013-04-12 08:37
pengyancai
Rank: 2
等 级:论坛游民
帖 子:57
专家分:46
注 册:2013-3-4
收藏
得分:2 
同意二楼,写代码的时候也特别注意,在英文输入法状态下。
2013-04-12 09:40
yctchxf
Rank: 6Rank: 6
来 自:盐城
等 级:侠之大者
威 望:2
帖 子:176
专家分:454
注 册:2012-4-10
收藏
得分:2 
尽量不要用 中文吧,顺便学学英文,关键是如果你看人家写的代码是,不一定有中文,到时候你会觉得很不舒服的。
2013-04-12 09:49
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:2 
#include <stdio.h>
void main()
{
    char ch;
    printf("请输入一个字符:");  //你这里的括号和分号是中文字符,改成英文的
    scanf("%c",&ch);
    if(ch>='A'&&ch<='Z') ch=ch+32;
    else if(ch>='a'&&ch<='z') ch=ch-32;  //前面加个else   不然如果你输入是大写字母的话,经过第一个if变成小写,在经过此语句又会变回大写
    else ch=ch;                       //虽然该不该无所谓,但简单一点还是改成else吧                  
    printf("%c\n",ch);
}

三十年河东,三十年河西,莫欺少年穷!
2013-04-12 15:22
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:2 
错误如下:
1、printf("请输入一个字符:");这个结尾处的你用的是中文输入法,改为英文
2、if(ch>='A'&&ch<='Z') ch=ch+32;
     if(ch>='a'&&ch<='z') ch=ch-32;
     if(ch<'A'||ch>'z'||ch<'a'||ch>'z') ch=ch;
这个存在逻辑错误,比如你输入A,那么第一句会执行ch=a;第二句同样有ch>='a'成立,然后执行后ch=A,就是没有变化。
给你修改后入下:
#include <stdio.h>
 void main()
 {
     char ch;
     printf("请输入一个字符:");
     scanf("%c",&ch);
     if(ch>='A'&&ch<='Z') ch=ch+32;
     else if(ch>='a'&&ch<='z') ch=ch-32;
     else if(ch<'A'||ch>'z'||ch<'a'||ch>'z') ch=ch;
     printf("%c\n",ch);
 }

Maybe
2013-04-12 18:43
YJ_Hao
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:215
专家分:609
注 册:2013-3-22
收藏
得分:2 
一般输入法都有中英文标点的切换,改下设置就不会错了!
2013-04-12 19:51
czzdcn123
Rank: 7Rank: 7Rank: 7
来 自:江西
等 级:黑侠
威 望:3
帖 子:258
专家分:510
注 册:2013-3-7
收藏
得分:2 
8楼正解
2013-04-12 20:37
快速回复:编写以下的程序。并指出错误
数据加载中...
 
   



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

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