下面是引用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和唐老鴨.
這幾位大大的大力協助.....
謝謝您們囉!!