鱼C论坛

 找回密码
 立即注册
查看: 3514|回复: 5

C程序无错误,但是运行还是不行

[复制链接]
发表于 2012-7-24 12:41:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
上代码
  1. #include<stdio.h>
  2. void main()
  3. {
  4. char ch;
  5. printf("input a letter");
  6. scanf("%c",&ch);
  7. ch=(65<='ch'<=91)?('ch'+32):ch;
  8. printf("%c\n",ch);
  9. }
复制代码

怎么打大写字母输出的还是原形,怎么回事

点评

下次发代码的时候 把格式 调整下 调整方法 在VC编译器里面 先按住Ctrl+A 全选 然后按alt+F8 自动调整格式的 小技巧 小甲鱼教的  发表于 2012-7-24 20:55
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-7-24 13:18:50 | 显示全部楼层
ch=(65<='ch'<=91)?('ch'+32):ch;    你这行代码写的不对:

ch是你定义的变量  ,然后 scanf输入了一个字符给它了。。。但是  你的  'ch',这种写法是把ch整成了字符。。  还有  这不是做数学题。。。没有  1<x<2的这种写法,C语言都是  1<x && x< 2 这样  表示两个条件同时成立
char ch;
printf("input a letter");
scanf("%c",&ch);
ch=(ch >= 65 && ch <= 91)?(ch+32):ch;
printf("%c\n",ch);

这样就好了、、
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-7-24 13:59:20 | 显示全部楼层
还有  这不是做数学题。。。没有  1<x<2的这种写法

可以这么写的,表达式1<x为真则值为1,为假则值为0;无论真假表达式1<x的值都<2
所以整个表达式 1<x<2的值为1(真)
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-7-24 14:06:04 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-7-24 14:11:59 | 显示全部楼层
仰望天上的光 发表于 2012-7-24 13:59
可以这么写的,表达式1

确实可以那样写,编译不会报错。。。只是那样写会被人骂。。。
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-7-24 21:06:53 | 显示全部楼层
#include<stdio.h>

void main()
{
        char ch;

        printf("input a letter:");

        scanf("%c",&ch);

        //ch=(65<='ch'<=91)?('ch'+32):ch;        这里的判断不能这样判断 你这样判断的话 先是判断 'ch'>=65 要是大于的话这个结果为1 否则为0 然后再判断后面那个 后面判断出来永远为真
         // 应该改成如下
        ch=(ch>=65&&ch<=91)?ch+32:ch;
        printf("%c\n",ch);
}
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-11-14 08:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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