C语言网

 找回密码
 加入社区!

QQ登录

只需一步,快速开始

查看: 479|回复: 12

我哪里错了? [复制链接]

Rank: 1

主题
0
帖子
13
C币
16 枚
在线时间
4 小时
发表于 2010-8-9 11:16:12 |显示全部楼层
/*将小写字母转换成大写字母*/
void main()
{
int ch;
printf("please input ch:\n");
scanf("%c",&ch);
if(ch>='a'&&ch<='z')
  ch=ch-'a'+'A';
  printf("%c\n",ch);
   getch();
}
运行结果:输入 d, 输出 d;
问题:为什么没有转换成大写字母?

Rank: 1

主题
0
帖子
7
C币
7 枚
在线时间
1 小时
发表于 2010-8-9 13:23:30 |显示全部楼层
算法有问题吧(我新手,猜的)

Rank: 12Rank: 12Rank: 12

主题
18
帖子
318
C币
1381 枚
在线时间
235 小时
发表于 2010-8-9 16:23:09 |显示全部楼层
-----------int???

Rank: 1

主题
0
帖子
3
C币
4 枚
在线时间
0 小时
发表于 2010-8-9 16:46:23 |显示全部楼层
还真的没看懂你的第七行是什么意思。。。。。
改成 ch=ch-32;试试看?

Rank: 1

主题
0
帖子
14
C币
16 枚
在线时间
7 小时
发表于 2010-8-9 18:24:52 |显示全部楼层
#include<stdio.h>
void main()
{
char ch;//您将这设为int型了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
printf("please input ch:\n");
fflush(stdin);
scanf("%c",&ch);
if(ch>='a'&&ch<='z')
  ch=ch-'a'+'A';
  printf("%c\n",ch);
   getch();
}

以试验通过了

Rank: 1

主题
0
帖子
19
C币
20 枚
在线时间
7 小时
发表于 2010-8-9 19:41:38 |显示全部楼层
是定义自便量 换成char

Rank: 1

主题
0
帖子
13
C币
16 枚
在线时间
4 小时
发表于 2010-8-9 20:47:28 |显示全部楼层
   成功了,谢谢!另外请教fflush(stdin);是什么意思?我刚学c语言

Rank: 1

主题
0
帖子
14
C币
16 枚
在线时间
7 小时
发表于 2010-8-9 21:56:44 |显示全部楼层
不好意思,fflush();是用来清空输入缓冲区的,stdin是标准输入,即键盘输入。fflush(stdin);一般在与GETCHAR();配合,我一看要接收字符,就习惯性的加上了。

Rank: 1

主题
0
帖子
13
C币
16 枚
在线时间
4 小时
发表于 2010-8-13 17:50:57 |显示全部楼层
Thank you very much!

Rank: 2

主题
3
帖子
113
C币
117 枚
在线时间
7 小时
发表于 2010-8-13 19:01:21 |显示全部楼层
有个头文件里好像有转换大小写的?ctype.h?忘了。。。
您需要登录后才可以回帖 登录 | 加入社区!

C语言 ( 粤ICP备11042647号-2 )

GMT+8, 2012-2-7 22:56

©2009-2011 cyuyan.com.cn

回顶部