练习代码
1 #include <graphics.h> 2 #include <conio.h> 3 4 void main() 5 { 6 initgraph(640, 480); 7 8 circle(320, 240, 50); // 画圆 9 line(230, 240, 410, 240); // 画线 10 line(320, 150, 320, 330); // 画线 11 12 getch(); 13 closegraph(); 14 } 15 16 17 18 【代码示例 (OpenGL 绘图程序)】 19 20 #include <GL/glut.h> 21 22 // 函数功能:绘制一个正方形 23 void MyDisplay(void) 24 { 25 glClear(GL_COLOR_BUFFER_BIT); // 清除颜色 26 glRectf(-0.5f,-0.5f,0.5f,0.5f); // 绘制矩形 27 glFlush(); // 保证前面的OpenGL命令立即执行(而不是让它们在缓冲区中等待)。 28 } 29 30 // 主程序 31 void main(int argc, char *argv[]) 32 { 33 glutInit(&argc, argv); // 对GLUT进行初始化,这个函数必须在其它的GLUT使用之前调用一次。 34 glutInitDisplayMode(GLUT_RGB|GLUT_SINGLE); // 设置显示方式 35 glutInitWindowPosition(100, 100); // 设置窗口位置 36 glutInitWindowSize(400, 400); // 设置窗口大小 37 glutCreateWindow("My first OpenGL Program"); // 利用前面设置窗口的参数进行创建窗口,并设置窗口名称 38 glutDisplayFunc(&MyDisplay); // 调用绘图函数 39 glutMainLoop(); // 消息等待 40 } 41 //-------------------- 42 //指针的强制访问 43 #include<iostream> 44 using namespace std; 45 int a=5; 46 int b=6; 47 int main() 48 { 49 int *ap=(int*)4202660; 50 *ap=8; 51 cout<<a<<endl; 52 cout<<int(&b)<<endl; 53 } 54 //-------------- 55 #include<iostream> 56 using namespace std; 57 const int n=5; 58 const int m=4; 59 int a[n][m]; 60 int main() 61 { 62 /*1 2 3 4 1 2 2 2 2 2 1 2 2 1 2 1 2 2 1 2*/ 63 for(int i=0;i<n;i++) 64 for(int j=0;j<m;j++) 65 cin>>a[i][j]; 66 for(int i=0;i<n;i++)//n=5.m=4 67 { 68 int sum=0; 69 for(int j=0;j<m;j++) 70 sum+=a[i][j];//a[0][0],a[0][1],a[0][2] 71 cout<<(i+1)<<":"<<sum<<"\n";//五行 i<5 72 } 73 for(int i=0;i<m;i++)//四行,i<4 74 { 75 int sum=0; 76 for(int j=0;j<n;j++) 77 sum+=a[j][i];//a[0][0],a[0][1],a[0][2],a[0][3] 78 cout<<"NO"<<i<<"average is"<<double(sum)/n<<"\n"; 79 } 80 } 81 //--------------- 82 #include<iostream> 83 #include<vector> 84 using namespace std; 85 void print(const vector<int>& a);//重载函数 86 void print(); 87 bool process(vector<int>& a); 88 int main() 89 { 90 vector<int>a(10,5);//向量中含有10个5 91 if(process(a))//如果process()函数不为空,此时调用了bool process()函数 92 print(a);//调用重载 93 else 94 print();//调用原型 95 } 96 void print() 97 { 98 cout<<"failed.\n"; 99 } 100 void print(const vector<int>&a) 101 { 102 for(int i=0;i<a.size();i++) 103 cout<<a[i]<<" "; 104 cout<<"\n"; 105 } 106 bool process(vector<int>& a)//也是十分重要的函数,进行判断,结果为false,得failed 107 { 108 int sum=0; 109 for(int i=0;i<a.size();++i) 110 sum+=a[i]; 111 if(sum>100) 112 return true; 113 else 114 return false; 115 } 116 //---------------------- 117 #include<iostream> 118 using namespace std; 119 double fun(double x,int n) 120 { 121 double m1=1,sum=1; 122 for(int i=1;i<=n;i++) 123 if(i%2==1) 124 { 125 for(int j=2*i;j>0;j--) 126 m1*=x/j; 127 sum+=-m1; 128 } 129 else 130 { 131 for(int j=2*i;j>0;j--) 132 m1*=x/j; 133 sum+=m1; 134 } 135 return sum; 136 } 137 int main() 138 { 139 int x,n; 140 cout<<"Please input x:"<<endl; 141 cin>>x; 142 cout<<"Please input n:"<<endl; 143 cin>>n; 144 cout<<fun(x,n)<<endl; 145 } 146 //-------------------此程序感觉为问题极大 147 #include <stdio.h> 148 #include<conio.h> 149 #include <iostream> 150 #include <string.h> 151 void main() 152 { 153 int i,j,k,count; 154 char s1[100],s2[100]; 155 printf("Please enter main string:"); 156 gets(s1); 157 printf("enter sub string:"); 158 gets(s2); 159 count=0; 160 for(i=0;s1[i]!='\0';i++) 161 { 162 for(k=0,j=0;(s1[j]==s2[k])&&(s1[j]!='\0');j++,k++); 163 if(s2[k]=='\0') 164 count++; 165 } 166 printf("\ncount=%d\n",count); 167 } 168 //------------ 169 /*指针的强制访问,int* ap=(int*)4202660; 170 不要给指针变量赋值一个具体的地址值,这个很容易搞出非法的地址来 171 一般都是非法使用内存或者内存泄露引起的*/ 172 #include<iostream> 173 using namespace std; 174 int a=5; 175 int b=6; 176 int main() 177 { 178 int* ap=(int*)4202660; 179 *ap=8; 180 cout<<a<<endl; 181 cout<<int(&b)<<endl; 182 } 183 //------------- 184 #include<iostream> 185 using namespace std; 186 void f() 187 { 188 int b; 189 cout<<"B=>"<<b<<endl; 190 } 191 int main() 192 { 193 int a; 194 cout<<"A=>"<<a<<endl; 195 f(); 196 } 197 //-------------------------------- 198 void mySort(int *b,int size); 199 void f() 200 { 201 int a[]={3,5,7,1,8,4,9}; 202 mySort(a,sizeof(a)/sizeof(a[0]));//int *b=a; 203 // 204 } 205 //------------------- 206 #include<iostream> 207 using namespace std; 208 209 int funcA(int x,int y); 210 void funcB(int& s); 211 int main() 212 { 213 int a=6,b=12; 214 a=funcA(a,b);//a=6,b=12 215 cout<<a<<endl; 216 } 217 int funcA(int x,int y) 218 { 219 int n=5; 220 funcB(n); 221 return n; 222 } 223 void funcB(int &s) 224 { 225 int x=8; 226 s=x; 227 } 228 //----------------------- 229 //函数设计的随意性 230 #include<iostream> 231 #include<vector> 232 using namespace std; 233 void print(vector<int>&a) 234 { 235 for(int i=0;i<a.size();++i) 236 cout<<a[i]<<" "; 237 cout<<endl; 238 } 239 vector<int>add(vector<int>&a,vector<int>&b) 240 { 241 vector<int>c(a.size()); 242 for(int i=0;i<a.size();++i)//vector中有size() for(vector<int>iterator it=a.begin();it!=a.end(),it++) 243 c[i]=a[i]+b[i]; 244 /*a[i]+=b[i];*/ 245 return c; 246 } 247 int main() 248 { 249 int aa[]={2,3,1,2,3,2,1},bb[]={5,3,1,1,6,2,2}; 250 vector<int>a(aa,aa+7),b(bb,bb+7);//向量的初始化需要注意 251 vector<int>c=add(a,b);//向量的初始化需要注意 252 print(a); 253 print(b); 254 print(c); 255 } 256 //---------------- 257 void mySort(int *b,int size); 258 void f() 259 { 260 int a[]={3,5,7,1,8,4,9}; 261 mySort(a,sizeof(a)/sizeof(a[0]));//int *b=a 262 } 263 //数组是不能直接复制的 264 //向量参数传递 265 #include<iostream> 266 #include<vector> 267 #include<fstream> 268 #include<sstream> 269 using namespace std; 270 typedef vector<int> VI;//typedef 271 typedef vector<VI> VVI; 272 void print(const VI&); 273 void input(VVI&); 274 bool findVec(const VVI&,VI&); 275 int main() 276 { 277 VVI matrix; 278 input(matrix); 279 VI vec; 280 if(findVec(matrix,vec)) 281 print(vec); 282 } 283 void print(const VI& v) 284 { 285 for(int i=0;i<v.size();i++) 286 cout<<v[i]<<" "; 287 cout<<"\n"; 288 } 289 void input(VVI& m) 290 { 291 ifstream in("abc.in"); 292 int n,t; 293 in>>n; 294 m.resize(n);//设定内存大小 295 for(string s;n--&&getline(in,s);)// 296 for(istringstream sin(s);sin>>t;m[m.size()-n-1].push_back(t));// 297 } 298 bool findVec(const VVI& matrix,VI& v) 299 { 300 for(int i=0;i<matrix.size();++i)//matrix.size() 301 for(int j=0;j<matrix[i].size();++j)//matrix[i].size 302 if(matrix[i][j]==-1) 303 {v=matrix[i]; 304 return true; 305 } 306 return false; 307 } 308 //--------------------