【发布时间】:2011-10-19 10:22:22
【问题描述】:
#include <iostream>
#include <cmath>
using namespace std;
void input(int(&x)[10]);
int copy(int (&x)[10], int(&y)[10]);
void read(int(&x)[10], int b);
int main()
{
int m[10], v[10], c;
input((&m)[10]);
read((&m)[10], 10);
c = copy((&m)[10], (&v)[10]);
read((&v)[c],c);
system("PAUSE");
return 0;
}
void input(int(&x)[10])
{
for(int i=0; i < 10; i++)
{
cout<<"enter number "<<i+1<<": ";
cin>>x[i];
}
}
void read(int(&x)[10], int b)
{
for(int i=0; i < b; i++)
{
cout<<"number("<<i+1<<"): "<<x[i];
}
}
int copy(int(&x)[10], int(&y)[10])
{
int c = 0;
for(int i = 0; i < 10; i++)
{
if(x[i] % 3 == 0)
{
y[c]=x[i];
c++;
}
}
return c;
}
当我输入第一个数字时出现运行时错误,我们将不胜感激 我认为问题在于我将数组传递给函数的方式,但我不太确定 该程序的目的是在数组 m 中获取 10 个 int-s 的输入,然后将可被 3 整除的那些传递给 v,然后输出两者
【问题讨论】:
-
@skk:在这种情况下无关紧要,因为该程序可能会导致任何事情发生,包括在你的眼球中打开一个微型黑洞。