读书人

这段代码错在哪呢?<树组w>解决思路

发布时间: 2012-03-18 13:55:39 作者: rapoo

这段代码错在哪呢?<树组w>
//数组错误代码:
#include <iostream>
using namespace std;
int modify(int);
int main()
{

int marks[]={85,92,95,88};
modify(marks[1]);
cout < < "Second element is: " < <marks[1] < < "\n ";

}
int modify(int marks[])
{
marks[1]-=10;
return 0;
}


[解决办法]
#include <iostream>
using namespace std;
int modify(int *, int);
int main()
{

int marks[]={85,92,95,88};
modify(marks, 1);
cout < < "Second element is: " < <marks[1] < < "\n ";

}
int modify(int *marks, int i)
{
marks[i] -= 10;
return 0;
}
[解决办法]
两种改的方法都是可以的:
第一种方法我估计应该是楼主想要的:
#include <iostream>
using namespace std;
int modify(int);
int main()
{

int marks[]={85,92,95,88};
modify(marks); //把这个传递的参数改为数组名即可
cout < < "Second element is: " < <marks[1] < < "\n ";

}
int modify(int marks[]) //因为这边要求的就是一个指针,所以接收数组名才正确
{
marks[1]-=10;
return 0;
}


第二种方法也可以用,但估计不是楼主想要的,这是单纯的修改一个固定的元素

#include <iostream>
using namespace std;
int modify(int);
int main()
{

int marks[]={85,92,95,88};
modify(&marks[1]); //这里改为&
cout < < "Second element is: " < <marks[1] < < "\n ";

}
int modify(int *marks) //明确的写出是指针
{
(*marks)-=10; //元素改变值
return 0;
}

读书人网 >C++

热点推荐