| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1494 人关注过本帖
标题:新手!求一完整代码!C语言
只看楼主 加入收藏
sen_lin
Rank: 6Rank: 6
等 级:侠之大者
威 望:3
帖 子:114
专家分:436
注 册:2009-3-24
收藏
得分:1 
逗号表达式是表达式,而上面的是两个语句,逗号表达式是这个样子的(,,,)。
2009-10-09 21:54
pgy
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:C
等 级:小飞侠
威 望:8
帖 子:1248
专家分:2329
注 册:2009-9-23
收藏
得分:0 
回复 10楼 viky2003
还是没听明白啊,用逗号间隔然后分号结束,这应该是一个语句嘛。用分好间隔,但用{}括起来是一个复合语句,都是从左到右的依次执行没错吧!
而且你打的比方说int i,j;
                    i=0,j=0;
                    ...
        这可以通过编译,是对的嘛。
一个是通过初始化赋初值,一个是通过初始语句赋值,应该都是对的嘛,你怎么说第二种是错误的啊?

[ 本帖最后由 pgy 于 2009-10-9 22:10 编辑 ]

我可好玩啦...不信你玩玩^_^
2009-10-09 22:09
viky2003
Rank: 5Rank: 5
等 级:职业侠客
帖 子:375
专家分:383
注 册:2007-4-11
收藏
得分:0 
回复 12楼 pgy
我的例子说错了:
应该是 int x=0,int y=0;这个是错的。

可以这么理解,逗号运算符前后都是表达式,表达式的意思是可以将这个表达式的值赋给别人,表达式会得到一个值。
比如
printf(“haha %s”,a)
前面就是一个const char *,后面是一个char *。。。

这样你就可以去理解,break为什么不能用在这里了。

要练习算法就来http:///!!有挑战哦!!
2009-10-09 22:22
爱乐飞
Rank: 1
等 级:新手上路
帖 子:7
专家分:4
注 册:2009-7-21
收藏
得分:1 
以下是引用viky2003在2009-10-9 20:09:48的发言:



修改一下,这样会更好:
/* Note:Your choice is C IDE */
#include <stdio.h>
#include <string.h>

#define PASSWORD "12345"
int main()
{
    char s[6];
    int i = 0;
    printf("please input the passwo ...
感觉这个代码修改后更好。
2009-10-09 22:51
pgy
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:C
等 级:小飞侠
威 望:8
帖 子:1248
专家分:2329
注 册:2009-9-23
收藏
得分:0 
谢谢

我可好玩啦...不信你玩玩^_^
2009-10-10 06:29
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:1 
一群没有搞清楚基本概念的家伙……

C语言的基本单位是“语句”,语句分很多种,其中一种叫做表达式语句。表达式语句由表达式加分号组成。表达式里面有一类叫做“逗号表达式”,它的两边都必须是“表达式”。

“逗号表达式” = “表达式” “,” “表达式”
“逗号表达式语句” = “表达式” “,” “表达式” “;”

而语句的另外一种叫做“跳转语句”,包括“返回语句”,“继续语句”和“跳出语句”。他们都是语句,是不能用在需要表达式的地方的。

因此:a = 1, b = 2, c = 3;是正确的,其中第一个逗号表达式的两边分别是“a = 1”和“b = 2, c = 3”,这两个都是表达式。正确。这个表达式后加分号,就是一个语句。(注意,不是所有的语句后面都要加分号。if语句就不需要。同时复合语句也不需要。因此曾经有道语法题考怎么不用分号写一个C程序输出hello,答案是if (printf("hello\n")){})

而a = 1, break;就不对了,因为break不是表达式,而是语句,因此不符合语法规定。

[ 本帖最后由 StarWing83 于 2009-10-10 08:35 编辑 ]

专心编程………
飞燕算法初级群:3996098
我的Blog
2009-10-10 08:33
只求完美
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2009-10-9
收藏
得分:0 
#include <stdio.h>   
#include <stdlib.h>   
static int i=0;  
int main()  
{  
    int psw;  
    printf("Please input the password:");  
    scanf("%d",&psw);  
    fflush(stdin);  
    if(psw!=12345)  
    {  
        i++;  
        if(i==3)  
        {  
            printf("Sorry!\n\n");  
            return 1;  
        }  
        else  
        {  
            printf("Try agin!\n\n");  
            main();  
        }  
    }  
    else  
        printf("Welcome!\n\n");  
    return 0;  
}
2009-10-10 10:06
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
LS: 摘自ISOC99 7.19.5.2

2 If stream points to an output stream or an update stream in which the most recent
  operation was not input, the fflush function causes any unwritten data for that stream
  to be delivered to the host environment to be written to the file; [bo]otherwise, the behavior is
  undefined.[/bo]

专心编程………
飞燕算法初级群:3996098
我的Blog
2009-10-10 10:32
muzhi420
Rank: 1
等 级:新手上路
帖 子:1
专家分:2
注 册:2009-10-9
收藏
得分:1 
原来我的编译器有问题,换到linux下就可以了.郁闷

[ 本帖最后由 muzhi420 于 2009-10-10 11:16 编辑 ]
2009-10-10 10:57
pgy
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:C
等 级:小飞侠
威 望:8
帖 子:1248
专家分:2329
注 册:2009-9-23
收藏
得分:0 
回复 16楼 StarWing83
非常清晰的讲解!
懂了,谢谢!

我可好玩啦...不信你玩玩^_^
2009-10-10 15:40
快速回复:新手!求一完整代码!C语言
数据加载中...
 
   



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

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