| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 376 人关注过本帖
标题:求助···一道简单的编程问题(偶是新手)
只看楼主 加入收藏
no47wk
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-11-25
收藏
 问题点数:0 回复次数:7 
求助···一道简单的编程问题(偶是新手)
编了一个程序用于输出所有用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;
}

按我的理解,两种版本的输出效果是一样的才对,但版本二输出有一些我无法理解的错误,请诸位高手指教
   
 

   
 
搜索更多相关主题的帖子: include 
2010-11-25 22:51
xanxus
Rank: 2
等 级:论坛游民
威 望:1
帖 子:21
专家分:60
注 册:2010-10-26
收藏
得分:0 
怎么会一样呢。你第二中版本中
语句cout<<b;
输出的可不是数组的值。格式就不对

授人以鱼  不如授人以渔
2010-11-25 23:06
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
cout<<b;

for(w=0;w<4;++w)
     cout<<b[w];
你认为会一样吗?



                                         
===========深入<----------------->浅出============
2010-11-26 15:37
no47wk
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-11-25
收藏
得分:0 
回复 楼主 no47wk
我用for循环式挨个输出B数组的所有4个元素,而用cout<<b是输出b数组
  效果是应该一样啊
2010-11-26 20:22
no47wk
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-11-25
收藏
得分:0 
回复 2楼 xanxus
我用for循环式挨个输出B数组的所有4个元素,而用cout<<b是输出b数组
  效果是应该一样啊
2010-11-26 20:22
no47wk
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-11-25
收藏
得分:0 
回复 3楼 laoyang103
我用for循环式挨个输出B数组的所有4个元素,而用cout<<b是输出b数组
  效果是应该一样啊
2010-11-26 20:22
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
程序代码:
#include <iostream.h>

void main()
{
    int a[]={5,3,3,3,3,3,3,3,3};
    for(int i=0;i<9;i++)
    {
            cout<<a[i]<<" ";
    }
    cout<<endl<<a<<endl;
}
输出结果  5 3 3 3 3 3 3 3 3
          0x0012FF24
不信自己去试  地址可能不一样  那是因为你内存中栈的起始点不一样

                                         
===========深入<----------------->浅出============
2010-11-26 20:41
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
补充一下
程序代码:
int main()
{
    char a[]="the result of 3 and 2 is not 8";
    cout<<a<<endl;
    system("pause");
    return 0;
}
如果是字符数组   你cout<<a<<endl;
就是整个数组   剩下的肯定输出的是一个地址

                                         
===========深入<----------------->浅出============
2010-11-26 21:00
快速回复:求助···一道简单的编程问题(偶是新手)
数据加载中...
 
   



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

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