| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 646 人关注过本帖
标题:请大家帮忙看看这个小程序错在哪了
只看楼主 加入收藏
vyzj
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2009-10-23
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
请大家帮忙看看这个小程序错在哪了
//返回数组的长度
#include<iostream>
using namespace std;

template<typename T,size_t N>
size_t size(T (&arr)[N])
{
    return N;
}


int main()
{
    int ia[] = {1,2,3,4,5,6,7};
    cout << size(ia) << endl;
   

    return 0;
}



[ 本帖最后由 vyzj 于 2009-10-23 18:04 编辑 ]
2009-10-23 17:22
shl305
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:36
专家分:121
注 册:2009-3-13
收藏
得分:0 
数组做参数只传首地址,长度是没办法确定的,即使如 int  func(int a[10]){...}  这样写10是没有意义的,写不写都一样
2009-10-24 00:31
gz81
Rank: 5Rank: 5
等 级:职业侠客
帖 子:137
专家分:369
注 册:2008-5-1
收藏
得分:20 
以下是引用shl305在2009-10-24 00:31:13的发言:

数组做参数只传首地址,长度是没办法确定的,即使如 int  func(int a[10]){...}  这样写10是没有意义的,写不写都一样
嗯,赞同。

lz想求数组的长度,直接这样就可以了:

#include<iostream>
using namespace std;

int main()
{
    int ia[] = {1,2,3,4,5,6,7};
    cout << sizeof(ia)/sizeof(int) << endl;
   

    return 0;
}

我的空间:http://student./space.php?uid=116706
2009-10-24 09:40
flyingcloude
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:6
帖 子:598
专家分:1512
注 册:2008-1-13
收藏
得分:0 
以下是引用gz81在2009-10-24 09:40:57的发言:

嗯,赞同。

lz想求数组的长度,直接这样就可以了:

#include<iostream>
using namespace std;

int main()
{
    int ia[] = {1,2,3,4,5,6,7};
    cout << sizeof(ia)/sizeof(int) << endl;
   

    return 0;
 ...

你能学会你想学会的任何东西,这不是你能不能学会的问题,而是你想不想学的问题
2009-10-24 10:41
苏洛离
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2009-10-16
收藏
得分:0 
cout << sizeof(ia)/sizeof(int) << endl; 这句可以改成 cout << sizeof(ia << endl; 吗?楼上的

2009-10-24 19:41
东西邪毒
Rank: 1
等 级:新手上路
帖 子:19
专家分:9
注 册:2009-5-8
收藏
得分:0 
回复 5楼 苏洛离
#include<iostream>
#include<string>
using namespace std;


class Student
{
   
private:
    string name;
    long unsigned int num;
    float score;
    static int k;
    static float averscore;
public:
    void input();
    void display();
    void averScore();
    static float printaverScore(){ return averscore;}
};

float Student::averscore = 0.0;
int Student::k = 0;



void Student::averScore()
{
    k++;
    averscore = (averscore + score) / (float) k ;
}
   


void Student::input()
{
    cout<<"Enter the name:\n";
    cin>>name;

    cout<<"Enter the number:\n";
    cin>>num;

    cout<<"Enter the score:\n";
    cin>>score;
}


void Student::display()
{
    cout<<name<<"\t\t"<<num<<"\t\t"<<score<<endl;
}
   
   


int main()
{
    Student stu[100];
    int i = -1;
    char ch = 'y';
    cout<<"Pls input the infomation of students"<<endl;


    do
    {
        i++;
        stu[i].input();
        stu[i].averScore();
        cout<<"[y/n?]"<<endl;
        cin>>ch;
   
    }while(ch == 'Y' || ch == 'y');

    cout<<"Name"<<"\t\t"<<"Number"<<"\t\t"<<"Score"<<endl;
    for(int j = 0;j<=i;j++)
        stu[j].display();

    cout<<"The average score of these students is: "<<Student::printaverScore()<<endl;

    return 0;



}
2009-10-24 22:24
cookies5000
Rank: 2
等 级:论坛游民
帖 子:33
专家分:48
注 册:2009-10-25
收藏
得分:0 
LZ,电脑不是人,它很傻的,你不抽鞭子叫它去遍历每个数组元素它不会主动给你返回一个N的.
2009-10-25 14:54
vyzj
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2009-10-23
收藏
得分:0 
好,谢谢大家
2009-10-25 16:28
快速回复:请大家帮忙看看这个小程序错在哪了
数据加载中...
 
   



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

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