回 帖 发 新 帖 刷新版面

主题:请教大家

这个程序有错误 我不知道怎么改,请教大家

//多文件编译
//t.h
const int N=5;
void indata(int a[N]);
void outdata(int b[N]);

//indata.cpp
#include<iostream.h>
#include"t.h"
void indata(int a[N])
{ for(int i=0;i<N;i++)
  cin>>a[i];
}

//outdata.cpp
#include<iostream.h>
#include"t.h"
extern const int N;
void outdata(int b[N])
{ for(int i=0;i<N;i++)
  cout<<"b["<<i<<"]="<<b[i]<<" ";
}

//temp.cpp
#include<iostream.h>
#include"indata.cpp"
#include"outdata.cpp"
#include"t.h"
void main()
{ //extern const int N;
  int x[N];
  cout<<"please input "<<N<<" data\n";
  indata(x);
  outdata(x);
}

回复列表 (共4个回复)

沙发

很简单,你的indata函数的形参应该是int&才对

板凳

可以具体点吗

3 楼

//indata.cpp
这里void indata(int a[N])是错的,应该用
void indata(int& a[N])传递数组的引用,否则在indata函数里对a数组的修改将不能作用于main函数中

4 楼


void indata(int a[N]);
void outdata(int b[N]);

应该用:
你已经声明const int N=5;
void indata(int a[]);
void outdata(int b[]);
如果N未知,则要:
void indata(int a[],int N);
void outdata(int b[],int N);

我来回复

您尚未登录,请登录后再回复。点此登录或注册