标题:c语言初学求大神指导一下几个程序问题
取消只看楼主
luguolian
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2013-4-15
结帖率:100%
已结贴  问题点数:8 回复次数:2 
c语言初学求大神指导一下几个程序问题
下面是这几天在家学习c的过程中遇到的几个问题,在这里请教一下大神
1.
#include<stdio.h>                    
void main()
{
    int x,i;
    for(i=1;i<=100;i++)
    {x=i;                                    
     if(++x%2==0)
         if(++x%3==0)
             if(++x%7==0)
                 printf("%4d",x);
             }
    printf("\n");
}
关于这个程序我不知道结果是怎么运算得到的?为什么结果是28和70这两个数值呢?  
2.
#include<stdio.h>
void main()
{
    int x=2;                 不懂,为什么结果是-1。主要是while里面那个表达式的意思不懂(应该不是自减那么简单吧?)
    while(x--);
    printf("%d\n",x);
}
3.#include<stdio.h>
void main()
{
    int i=0,sum=1;
    do                          
    {sum+=i++;}
    while(i<5);
    printf("%d\n",sum);
}
这个程序的结果为什么是11而不是17呢?对于sum+=i++我的理解是i先自增一次然后再求和。但是得到的结果不对!



4.#include <stdio.h>
void main()
{ int h10,h7,h5;
  for(h10=1; h10<8; h10++)
    for(h7=1;h7<8; h7++)
      for(h5=1; h5<8; h5++)
        if(h10+h7+h5==8 && h10*10+h7*7+h5*5==53)
          printf("h10=%d\th7=%d\th5=%d\n",h10,h7,h5);
   }
和下面的这个程序
#include<stdio.h>
void main()
{ int a,b,c;
  for(a=0;a<=5;a++)
   {for(b=0;b<=6;b++)
     {for(c=0;c<=10;c++)
       if(10*a+7*b+5*c==53&&a+b+c==8)
       printf("\t\n%d\t%d\t%d",a,b,c);
      }
    }
}
前面和后面的程序得到的结果是一样的。两个程序的差别就在于第二个和第三个for都被前面一个用大括号括起来了,我一直不理解一个程序中存在多个for语句时用括号和不用括号的区别!或者说我还是不太理解有多个for语句时候到底是怎么运算的?这个问题困扰了我很久!
搜索更多相关主题的帖子: include c语言 在家 
2013-07-26 19:42
luguolian
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2013-4-15
得分:0 
回复 3楼 TonyDeng
这个是我在学习C语言的时候遇到的几个不懂的程序!并不是都不懂,只是在一两个小地方实在是弄不出清楚是怎么运算的。所以发帖问问
2013-07-28 08:18
luguolian
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2013-4-15
得分:0 
回复 5楼 额外覆盖
非常感谢你的回答,我是个初学者 为的就是今年9月23号的国二考试。听说C在国家计算机考试中算是比较难的我们学校也要求我们考,所以我就利用暑假的时间好好补习一下
2013-07-30 09:01



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




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

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