下面是引用0951020223于2005-05-11 14:57发表的 :
就是因为你的x.size是0...for才不会动作..
复制程式
#include <cstdlib>
#include <iostream>
using namespace std;
struct vector { //定义结构
int* ptr;
int size;
};
//以下为你必须实现功能的函数
void vec_creat(vector& v, int s); //建立vector
void vec_resize(vector& v, int s); //重新调整vector 大小
int vec_get(vector& v,int p);//取出数值
void vec_set(vector& v, int p, int val); //设定数值(指定array位置作数值设定)
void vec_clean(vector& v); //清除vector
//以下为已完成功能的函数(你只需使用下列函数,不要对下列函数修改)
void vec_set(vector& v,int val); //设定数值(对全部array作设定)
void vec_print(vector& v); //列印
//主程式
int main(int argc, char *argv[])
{
vector x;
x.ptr=NULL;
x.size=0;
vec_creat(x,10);
int i=0;
for(int i=0; i<x.size;i++)
vec_set(x,i,i*i);
vec_print(x);
vec_set(x,99);
vec_print(x);
system("PAUSE");
return 0;
}
//===============
void vec_print(vector& v){
for(int i=0; i<v.size;i++)
cout<<vec_get(v,i)<<" ";
cout<<endl;
}
void vec_set(vector& v,int val) {
for (int i=0; i<v.size;i++)
v.ptr[i]=val;
}
//=============================
void vec_creat(vector& v,int s){
v.ptr = new int[s];
v.size = s;
memset(v.ptr, 0, sizeof(int)*v.size);
}
void vec_resize(vector& v,int s){
int s1,v1;
v.ptr =new int[s];
for (int i=0;i<s;i++)
v.ptr[s1]=v.ptr[s];
delete [] v.ptr;
v.ptr[s];
}
int vec_get(vector& v,int p){
return v.ptr[p];
}
void vec_set(vector& v,int p,int val){ //指定位置设定数值
v.ptr[p]=val;
}
void vec_clean(vector& v){
if (v.ptr=NULL)
delete [] v.ptr;
v.ptr=NULL;
}
这是我刚刚跑出来的答案,虽然是跟助教的答案一样.
但我总觉得要ㄉ好像并不是这样子内...
好像还要有些条件.
其实说老实话,我真ㄉ一点都看不懂我自己在写什么.
尤其是 ?.ptr ?.size
转来转去,实在也是不知道该如何ㄉ使用.
真ㄉ很感谢各位大大ㄉ帮忙...
尤其是0951020223,codeboy和唐老鸭.
这几位大大的大力协助.....
谢谢您们啰!!