鱼C论坛

 找回密码
 立即注册
查看: 4670|回复: 6

一个作业的小问题

[复制链接]
发表于 2013-1-17 23:16:52 | 显示全部楼层 |阅读模式
3鱼币
题目是要我输入一个字符,要我判断。大写输出大写。不是就输出小写。
#include <stdio.h>

void main()
{
    char ch;
    scanf("%c", &ch);
    ch=(ch>='A' && ch<='Z')?(ch+32):ch;
    printf("%C\n", ch);
}
这是我的答案,为什么大写输出是小写。当我吧ch>A,CH<Z改写成,ch>Zch<A,程序才能输出题目要求的答案。请高手解惑,,,,,,实在是想不通啊

最佳答案

查看完整内容

你这句: “ch=(ch>='A' && ch
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-1-17 23:16:53 | 显示全部楼层
你这句: “ch=(ch>='A' && ch<='Z')?(ch+32):ch;”的意思是当字符是大写的时候它的ASC码就加32的(也就是把大写变为小写啦!),是小写就原样输出。而你改了之后的代码是一个假判断,无论如何都不会成立的判断,所以输出的只会是你输入的。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-1-17 23:39:16 | 显示全部楼层
本帖最后由 kit1858644 于 2013-1-17 23:43 编辑

你想的是輸入大寫輸出大寫 輸入小寫就輸出小寫?

如果是:
  1. #include <stdio.h>

  2. int main()
  3. {
  4.     char ch;
  5.    
  6.     scanf("%c", &ch);
  7.     ch = (ch>='A' && ch<='Z')?ch:ch;
  8.     printf("%C\n", ch);
  9. }
复制代码
因為你 "(ch>='A' && ch<='Z')?(ch+32):ch; " 中的意思是: 如果(ch>='A' && ch<='Z) 就把ch+32, 不是的話就輸出ch。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-1-19 17:40:37 | 显示全部楼层
....你这个    大写输出大写,小写输出小写。。。根本不用变化啊 ,所以ch=(ch>='A' && ch<='Z')?(ch+32):ch;不要就对了把
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-1-19 21:10:21 | 显示全部楼层
大写输出大写 小写输出小写啊
  1. #include <stdio.h>

  2. int main()
  3. {
  4.     char ch;
  5.     scanf("%c", &ch);
  6.    
  7.     printf("%C\n", ch);
  8. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-1-19 21:10:52 | 显示全部楼层
ch=(ch>='A' && ch<='Z')?(ch+32):ch;
  要他干嘛
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-1-20 16:11:49 | 显示全部楼层
鉴于你的题目是:题目是要我输入一个字符,要我判断。大写输出大写。不是就输出小写。直接输出就可以了,没叫你转换啊。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-8-9 04:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表