康复下肢训练器材功能:C++编程问题

来源:百度文库 编辑:神马品牌网 时间:2024/04/30 22:45:31
#include "iostream.h"
struct student
{ int num;
char name [20];
char sex;
int age ;
};
void print(student &);
student stu[3]={{1,"li lin",'M',18},{2,"sum",'M',19},
{3,"zhao",'M',20}};
void main()
{ int i;
for (i=0;i<3;i++)
print(&stu[i]);} //????为什么错?
void print(student *s)
{
cout<<s->num<<"\t"<<s->name<<"\t"<<s->sex<<"\t"<<s->age<<"\t"<<endl;
}

各位高手:
请问上面程序错在哪里。请指教。谢谢

void print(student *s); <-你的定义有问题。
student stu[3]={{1,"li lin",'M',18},{2,"sum",'M',19},
{3,"zhao",'M',20}};
void main()
{ int i;
for (i=0;i<3;i++)
print(&stu[i]);} //????为什么错?
void print(student *s)
{
cout<<s->num<<"\t"<<s->name<<"\t"<<s->sex<<"\t"<<s->age<<"\t"<<endl;
}

库文件都找不到当然下面的全错。。。。。

&是取地址,取值因该是*号吧??

#include <iostream.h>

struct student
{
int num;
char name[20];
char sex;
int age ;
};

void print(student &);

student stu[3]={
{1,"li lin",'M',18},
{2,"sum",'M',19},
{3,"zhao",'M',20}
};

void main()
{
int i;
for (i=0;i<3;i++)
print(stu[i]);
}

void print(student & s)
{
cout<<s.num<<"\t"<<s.name<<"\t"<<s.sex<<"\t"<<s.age<<"\t"<<endl;
}

你写得真是乱七八糟,如果再长一点,就没有耐心看了.给你重新整理了一下,已经可以用了.

你声明的函数void print(student &); 和你定义的函数void print(student *s) 居然不一样.你对指针和引用的理解还是错的,再好好看看教材吧.
还有,print只是用来显示,又不修改里面的数据,为什么参数要传地址呢?

print函数的问题吧!

声明是这样的:
void print(student &);
修改一下:
void print(student *);

或者,不修改声明,但是需要修改一下实现和调用:
void print(student &s)
{
cout<<s.num<<"\t"<<s.name<<"\t"<<s.sex<<"\t"<<s.age<<"\t"<<endl;
}

调用时:
print(stu[i]);

说白了,这个错误是关于指针和引用的。