关于C语言的for循环问题

来源:百度知道 编辑:UC知道 时间:2024/05/16 17:06:00
#include<iostream>
using namespace std;
void main()
{int a[4],i,j,k,num=0,sum;
a[0]=6;a[1]=3;a[2]=2;a[3]=8;
for(i=0;i<=3;i++)
for(j=0;j!=i,j<=3;j++)
for(k=0;k!=i,k!=j,k<=3;k++)
{sum=a[i]*100+a[j]*10+a[k]; num++;
cout<<sum<<endl;
}
cout<<num<<endl;
}....1

#include<iostream>
using namespace std;
void main()
{int a[4],i,j,k,num=0,sum;
a[0]=6;a[1]=3;a[2]=2;a[3]=8;
for(i=0;i<=3;i++)
for(j=0;j<=3,j!=i;j++)
for(k=0;k<=3,k!=i,k!=j;k++)
{sum=a[i]*100+a[j]*10+a[k]; num++;
cout<<sum<<endl;
}
cout<<num<<endl;
}...2

谁能告诉我1与2的区别呢?
#include<iostream>
using namespace std;
void main()
{int i,j;
for(i=1,j=0;i<=3;i++)
cout<<i<<endl;
cout<<j<<endl;
}

那for(i=1,j=0;i<

肯定不一样...
for(表达式1;表达式2;表达式3)
在表达式2中你用到的是一个逗号“,”表达式,整个表达式的执行结果将会是最后一个执行的结果,例如;
x=(a=4,3*5);
那么给x赋的值将是15,即3×5。
所以你的区别也就很显然了...
for(i=0;i<=3;i++) //i<=3作判断条件
for(j=0;j!=i,j<=3;j++) //最终条件执行相当于只有j<=3
for(k=0;k!=i,k!=j,k<=3;k++) //最终条件执行相当于只有k<=3

for(i=0;i<=3;i++) //i<=3作判断条件
for(j=0;j<=3,j!=i;j++) //最终条件执行相当于只有j!=i
for(k=0;k<=3,k!=i,k!=j;k++) //最终条件执行相当于只有k!=j

呵呵...
我就说这么多,其他的区别我想也就不多说了......

for(j=0;j!=i,j<=3;j++)
for(k=0;k!=i,k!=j,k<=3;k++) ......1

for(j=0;j<=3,j!=i;j++)
for(k=0;k<=3,k!=i,k!=j;k++).......2

可以明确的告诉你,两个没有区别……

kk_0同学已经把关键部分提出来了,可以自己比较下,顺序不同,实质没任何变化

!的意思是非
也就是说非j=i,非也就是不是的意思