标题:这条输出语句理解有点困难&&一段程序完形填空
只看楼主
飞石
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2007-3-10
 问题点数:0 回复次数:3 
这条输出语句理解有点困难&&一段程序完形填空
刚学C。对于这段输出有点不理解,请高手用中文解释一下吧!谢谢了 :)
main()     /*主函数*/
{ char c;  /*定义字符C*/
  scanf("%c",&c);    /*输入字符C,并且存放变量地址为C*/
  if('0'<=c&&c<='9')  /*如果输入的变量在0和9之间*/
  printf("c=%c  %c\n",c,'1');   /*然后这里就看不太明白了,为什么有两个%c。还有两个逗号,是逗号表达式吗*/
}


还有我想把这段程序补充完整,但自己刚学还没有能力,请大家帮帮忙
第一个程序:
if (c>='0'&&c<='9') if(c=='5')y=0;
else y=1;
这是说如果c不是数字的话,则y就等于1
if (c>='0'&&c<='9') if(c=='5')y=0;
                    else y=1;
这是说如果c不是数字,并且不等于5的话,y就等于1

请问上面我该这么理解这两段吗?
书上说else总是和最近的if配对。
可这个“最近”该如何理解?
第一个程序的第一个if和else近?
第二个程序的第二个if和else近?
是这么理解“近”的吗?
搜索更多相关主题的帖子: 语句 完形 填空 
2008-03-16 22:48
bibingyan
Rank: 1
来 自:湖南长沙
等 级:新手上路
帖 子:123
专家分:0
注 册:2008-3-16
得分:0 
我帮你解写一下啊:
if (c>='0'&&c<='9')
     {
        if(c=='5')    y=0;
     }
        else y=1;
///////////////////////////////////////
if (c>='0'&&c<='9')
    {
        if(c=='5')y=0;    else y=1;
    }
我想你看清楚了吧,。
2008-03-16 23:06
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
得分:0 
main()     /*主函数*/
{ char c;  /*定义字符C*/
  scanf("%c",&c);    /*输入字符C,把你输入的字符存入内存中,C字符表示的是你存入的数据的地址*/
  if('0'<=c&&c<='9')  /*如果输入的变量在0和9之间*/
  printf("c=%c  %c\n",c,'1');   /*这里,c=是在屏幕上显示的,%c表示是以字符形式输出,第一个%c和第二个%c中
                                  间有间隔,是在显示的时候隔开,好分辨。*/
}


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

第一个程序:
if (c>='0'&&c<='9') if(c=='5')y=0;
else y=1;
这是说如果c不是数字的话,则y就等于1


/*如果你的题意没错的话,这样改应该可以*/
if(c>='0'&&c<='9')
{
        if(c=='5')  y=0;
}
else y=1;


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

if (c>='0'&&c<='9') if(c=='5')y=0;
                    else y=1;
这是说如果c不是数字,并且不等于5的话,y就等于1。

/*这个题意我没理解,既然C都不是数字了,还为什么要不等于5的条件呢?是不是你的题意没弄明白?下面我改的是表达这个意思:如果C是数字,但不等于5,Y就等于1*/
if (c>='0'&&c<='9')
{
      if(c=='5') y=0;
      else y=1;
}


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

至于if和else的用法,多作习题,多写程序,自然就会明白了。

希望和你共同进步。

解释得也不知道对不对,请各位指正。

:)

[[it] 本帖最后由 广陵绝唱 于 2008-3-17 00:10 编辑 [/it]]
2008-03-17 00:08
rekcah代码
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-3-12
得分:0 
你问的问题if与else。
if与总是于else最近配对,这是在没有{ }括的前提下,例上面的if (c>='0'&&c<='9') if(c=='5')y=0;
else y=1;
意思是“如果条件C>=9成立前提,判断后面if条件为真,执行Y=0。否则为Y=1。
如果{ }时,则{ }里的为一对。例if(c>='0'&&c<='9')
{
        if(c=='5')  y=0;
}
else y=1;
意思为:{ }里的外的if与else为一对.大意就是:如果if成立,则执行{}里的程序,否则执行else语句.

如果不对之处,谢谢大家指证.
2008-03-17 01:26



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-203741-1-1.html




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

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