| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2726 人关注过本帖
标题:这个程序问题在那里,如果有好的解答,奖励 100 +
只看楼主 加入收藏
yangfanconan
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:10
帖 子:397
专家分:541
注 册:2009-9-22
收藏
得分:0 
我感觉在while 条件里镶嵌getchar 可能只有操作,而没有存储,所以当没有初始变量时 无法判断条件,所以报错。
而当我们给予变量初始值时。比如简单的1,再输入一个1,输出的是13
当我们初始值时1,不输入任何值,直接回车,输出的也是13.
所以我感觉 是这样的。
编译平台是VS2010 WIN7 X64
2011-02-18 18:10
点线面
Rank: 8Rank: 8
来 自:NO.-1
等 级:蝙蝠侠
帖 子:525
专家分:980
注 册:2011-1-3
收藏
得分:0 
程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>


int main()
{
    char c=getch();

    while
        (
           (c=getch())
                      *
                      (((c - ' ')&&putchar(c))|1)
                      *
                      (c - 13)
                      );
   
    return 1;
}
如果程序这样没有什么问题

小代码,大智慧
2011-02-18 18:16
犬虫门心
Rank: 8Rank: 8
来 自:西安
等 级:蝙蝠侠
帖 子:209
专家分:753
注 册:2011-1-25
收藏
得分:0 
楼主,我的意思是要生成一个扩展名为.asm的汇编代码文件,楼主给的不是的。
建议楼主先查下你的编译器的命令行编译指令,使用“生成汇编代码”功能的选项。
楼主,由于不同的C编译器的命令行编译指令千差万别,这还要楼主继续努力啊。我现在在家里,没有在学校,所以没办法得到编译系统,请谅解。

当一名对得起学生学费的老师,一直是我的目标!我会更努力的!
2011-02-18 18:18
犬虫门心
Rank: 8Rank: 8
来 自:西安
等 级:蝙蝠侠
帖 子:209
专家分:753
注 册:2011-1-25
收藏
得分:0 
以下是引用点线面在2011-2-18 18:16:33的发言:

#include
#include
#include
 
 
int main()
{
    char c=getch();
 
    while
        (
           (c=getch())
                      *
                      (((c - ' ')&&putchar(c))|1)
                      *
                      (c - 13)
                      );
   
    return 1;
}
如果程序这样没有什么问题
这样的话,第一次输入应该没有起到作用啊。不完美。

当一名对得起学生学费的老师,一直是我的目标!我会更努力的!
2011-02-18 18:18
yangfanconan
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:10
帖 子:397
专家分:541
注 册:2009-9-22
收藏
得分:0 
回复 22楼 点线面
因为你没有在while条件里面调用没有初始化的函数,这个代码你已经初始化了。
2011-02-18 18:23
yangfanconan
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:10
帖 子:397
专家分:541
注 册:2009-9-22
收藏
得分:0 
c=getch()的定义居然是int_的
因为经过布尔运算,所以下面的输出是
%d
2011-02-18 18:30
点线面
Rank: 8Rank: 8
来 自:NO.-1
等 级:蝙蝠侠
帖 子:525
专家分:980
注 册:2011-1-3
收藏
得分:0 
这个应该涉及优先级问题

小代码,大智慧
2011-02-18 18:31
yangfanconan
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:10
帖 子:397
专家分:541
注 册:2009-9-22
收藏
得分:0 
其实我感觉能不再函数中调用函数就尽量避免,因为平台的不统一性,很多编译器有自己的私有理解,导致很多代码风格的不同。
2011-02-18 18:46
点线面
Rank: 8Rank: 8
来 自:NO.-1
等 级:蝙蝠侠
帖 子:525
专家分:980
注 册:2011-1-3
收藏
得分:0 
(((c - ' ')&&putchar(c))|1) 发现这个优先级最高,不知道为什么

小代码,大智慧
2011-02-18 18:48
yangfanconan
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:10
帖 子:397
专家分:541
注 册:2009-9-22
收藏
得分:0 
编译器毕竟是人写的,一个人的头脑再厉害,也不能解决所有问题。所以平台的不完整性,也决定了语言的局限性和编写的规范性,我个人认为不要以pass为规范,应该以国际ANSI标准来做。与国际接轨么~哈哈
2011-02-18 18:50
快速回复:这个程序问题在那里,如果有好的解答,奖励 100 +
数据加载中...
 
   



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

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