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语句时候到底是怎么运算的?这个问题困扰了我很久!