C++代码出错

来源:百度知道 编辑:UC知道 时间:2024/06/19 20:33:06
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
int zx,zd,a[20],b[20];
void FillArray(int a[],int b[]);
void Check();
void WriteFile(int zx,int zd,int a[],int b[]);
int main()
{
FillArray(a[20],b[20]);
WriteFile(zx,zd,a[20],b[20]);
system("pause");
return 0;
}
void FillArray(int a[])
{
Check();
for(int i=0;i<20;i++)
{
a[i]=rand()%zd+zx;
}
Check();
for(int i=0;i<20;i++)
{
b[i]=rand()%zd+zx;
}
}
void Check()
{
do{
cout<<"请输入范围最小值";
cin>>zx;
cin.ignore();
cout<<"请输入范围最大值";
cin>>zd;
cin.ignore();
}while(zx>=zd);
}
void WriteFile(int zx,int zd,int a[],int b[])
{
string name;
ofstream out;
cout<<"请输入文件名及其扩展名:";
getline(cin,nam

初级错误。
如果函数声明为:void FillArray(int a[],int b[]);
则实际调用该函数时应该是:FillArray(a,b);
而不是你的程序中的:FillArray(a[20],b[20]);

WriteFile犯了同样的错误

还有,你的FillArray的定义中写成了 void FillArray(int a[])
比你在上面的声明少了一个参数

void FillArray(int a[])定义时的参数是一个int型的数组..
FillArray(a[20],b[20]);调用的时候用的是数组中的两个数..而且a和b数组好像还没有定义..
应该这么写
int a[20],b[20];
FillArray(a);
FillArray(b);

WriteFile函数错误也是一样的,要这么调用WriteFile(zx,zd,a,b);
用数组名调用,而不是数组中第21个元素,那是一个整型的数据..

将这两句代码:
FillArray(a[20],b[20]);
WriteFile(zx,zd,a[20],b[20]);
改成
FillArray(a,b);
WriteFile(zx,zd,a,b);
数组作为函数形参时,调用时只需传入数组名(针对一维数组)

另外,你的FillArray(int a[],int b[])函数体定义中,少写了int b[].