求助···一道简单的编程问题(偶是新手)
编了一个程序用于输出所有用1 2 3 4组成的4位数,并输出总的个数有以下两个版本,
版本一:
#include<iostream>
using namespace std;
int main()
{
char a[4]={'1','2','3','4'},b[4];
int i,h,k,l,m=0,w;
for(i=0;i<4;++i)
{
for(h=0;h<4;++h)
{
for(k=0;k<4;++k)
{
for(l=0;l<4;++l)
{
b[0]=a[i];
b[1]=a[h];
b[2]=a[k];
b[3]=a[l];
++m;
cout<<" ";
for(w=0;w<4;++w)
cout<<b[w];
}
}
}
}
cout<<endl<<m;
system("pause");
return 0;
}
版本二:
#include<iostream>
using namespace std;
int main()
{
char a[4]={'1','2','3','4'},b[4];
int i,h,k,l,m=0,w;
for(i=0;i<4;++i)
{
for(h=0;h<4;++h)
{
for(k=0;k<4;++k)
{
for(l=0;l<4;++l)
{
b[0]=a[i];
b[1]=a[h];
b[2]=a[k];
b[3]=a[l];
++m;
cout<<" ";
cout<<b;
}
}
}
}
cout<<endl<<m;
system("pause");
return 0;
}
按我的理解,两种版本的输出效果是一样的才对,但版本二输出有一些我无法理解的错误,请诸位高手指教