第九周作业
2014-05-10 23:46
357 查看
1.调试分析课本每一个例题,有可能的话更改成2-3个方法的新程序:
H-1
H-3
H-4
H-5
H-6
2.编程实现课本每一个编程习题:
2-1
2-2
2-3
2-4
2-5
2-6
3. 有n个人围成一个圆圈,从第一个人开始报数,从1到3循环,凡是报3的退出圈子,问最后退出圈子的人是原来的几号:
4.一个班有5个学生,每一个学生有几门成绩(到底是几门自已定,或3或4或5或6),定义函数来完成下面功能:
计算第2门课成的平均分;
找出有2门以上成绩不及格的学生,并输出其学号和全部课程成绩;
找出平均成绩在90以上或者全部课程在85分以上的学生
明哥这是以前作业的提交记录,网页不知道为什么显示不了啊!!
H-1
#include <iostream> using namespace std; int main() { int arr[10]={2,4,6,8,10,12,14,16,18,20}; int *p=arr; for(int i=0;i<10;i++) { cout<<*p<<" "; if((i+1)%5==0) cout<<endl; p++; } return 0; }H-2
#include <iostream> using namespace std; void lower(char *p); const int SIZE=20; int main() { cout << "请输入一个大写字符串: " << endl; char arr[SIZE]; cin>>arr; lower(arr); cout<<"该字符串的小写为:"<<endl; cout<<arr<<endl; return 0; } void lower(char *p) { while(*p) { if(*p>='A'&&*p<='Z') *p+=32; p++; } }
H-3
#include <iostream> using namespace std; void del(char *p); const int SIZE=20; int main() { cout << "请输入一个字符串: " << endl; char arr[SIZE]; cin.get(arr,SIZE); del(arr); cout<<"删除空格后为:"<<endl; cout<<arr<<endl; return 0; } void del(char *p) { char arr[SIZE]; int i=0; for(;*p;i++) arr[i]=p[i]; int k=0; for(i=0;arr[i]!='\0';i++) { if(arr[i]!=' ') p[k++]=arr[i]; } p[k]='\0'; }
H-4
#include <iostream> using namespace std; int main() { const char *month[12]={"January","February","March","April","May","June", "July","August","September","October","November","December"}; cout<<"请输入一个1到12之间的整数(输入其他数字则退出):"<<endl; int num; cin>>num; while(num>=1&&num<=12) { cout<<"当前月份是:"<<month[num-1]<<endl; cout<<"请输入一个1到12之间的整数(输入其他数字则退出):"<<endl; cin>>num; } cout<<"Done!\n"; return 0; }
H-5
#include <iostream> using namespace std; int main() { int col,row; int i,j; cout<<"请输入第一个数组的行数:"; cin>>col; cout<<"请输入第一个数组的列数:"; cin>>row; int **ps=new int*[col]; for(i=0;i<col;i++) ps[i]=new int[row]; cout<<"请输入数组元素:"<<endl; for(i=0;i<col;i++) for(j=0;j<row;j++) cin>>ps[i][j]; cout<<"第一个数组为:"<<endl; for(i=0;i<col;i++) { for(j=0;j<row;j++) cout<<ps[i][j]<<" "; cout<<endl; } cout<<endl; cout<<"请输入第二个数组的行数:"; cin>>col; cout<<"请输入第二个数组的列数:"; cin>>row; int *p[col*row]; for(i=0;i<col*row;i++) p[i]=new int[col*row]; cout<<"请输入数组元素:"<<endl; for(i=0;i<col;i++) for(j=0;j<row;j++) cin>>p[i][j]; cout<<"第二个数组为:"<<endl; for(i=0;i<col;i++) { for(j=0;j<row;j++) cout<<p[i][j]<<" "; cout<<endl; } delete ps; for(i=0;i<col*row;i++) delete p[i]; return 0; }
H-6
#include <iostream> using namespace std; void max(int *p[],int col,int row); int main() { int col,row; int i,j; cout<<"请输入第一个数组的行数:"; cin>>col; cout<<"请输入第一个数组的列数:"; cin>>row; int **ps=new int*[col]; for(i=0;i<col;i++) ps[i]=new int[row]; cout<<"请输入数组元素:"<<endl; for(i=0;i<col;i++) for(j=0;j<row;j++) cin>>ps[i][j]; max(ps,col,row); return 0; } void max(int **p,int col,int row) { int max=0; for(int i=0;i<col;i++) for(int j=0;j<row;j++) { if(p[i][j]>max) max=p[i][j]; } cout<<"最大值为:"<<max<<endl; }
2.编程实现课本每一个编程习题:
2-1
/***********编写程序,将10个整型数2、4、6...18和20 赋予一个数组,然后使用指针输出该数组各元素的值*******/ #include <iostream> using namespace std; int main() { int a[10],*p,i; for(i=1;i<11;i++) a[i-1]=2*i; p=a; for(i=0;i<10;i++,p++) cout<<*p<<' '; cout<<endl; }
2-2
/***********把键盘输入的一个大写字符串该写为小写字符串并显 示出来,其中大小写转换使用自定义函数lower()实现*******/ #include <iostream> using namespace std; void lower(char *p) { while(*p!='\0') { if(*p<='Z'&& *p>='A') { *p+=32; p++; } else p++; } } int main() { char a[50],i; cout<<"please input a string"<<endl; cin.get(a,50); lower(a); cout<<"the string after change: " ; for(i=0;a[i]!='\0';i++) cout<<a[i]; cout<<endl; return 0; }
2-3
/*******输入一个字符串,删除其中的所有空格后输出*******/ #include <iostream> using namespace std; int main() { char a[50],b[50]; int i,j=0; cout<<"please input a string"<<endl; cin.get(a,50); for(i=0;a[i]!='\0';i++) { if(a[i]!=' ') { b[j]=a[i]; j++; } } b[j]='\0'; for(i=0;b[i]!='\0';i++) cout<<b[i]; cout<<endl; return 0; }
2-4
/************编写程序,当输入整数1-12月份时,输出该月的英文名称, 输入其他整数时结束程序。例如,输入4,则输出April;输入0,则退出程 序,要求使用指针数组处理***************************************/ #include <iostream> using namespace std; int main() { char *month[]={"January","February","March","April","May","June","July", "August","September","October","November","December"}; int i; while(1) { cout<<"please input a number,input 0 to exit: "<<endl; cin>>i; if(i==0) break; else if(i<0||i>12) cout<<"input error,please input another number!"<<endl; else cout<<month[i-1]<<endl; } return 0; }
2-5
/*********分别使用指针数组和二级指针输入、 输出一个二维整型数组*********************/ #include <iostream> using namespace std; int main() { int a[2][3],*p[2]; //给指针数组赋值要通过一个二维数组间接赋值 int **pp; int i,j; p[0]=a[0],p[1]=a[1]; cout<<"please input 6 numbers"<<endl; for(i=0;i<2;i++) for(j=0;j<3;j++) cin>>p[i][j]; pp=p; cout<<"the number you input is: "<<endl; for(i=0;i<2;i++) // 指针数组输出 for(j=0;j<3;j++) cout<<*(p[i]+j)<<" "; cout<<endl; cout<<"the number you input is: "<<endl; for(i=0;i<2;i++) // 二级指针输出 for(j=0;j<3;j++) cout<<*(pp[i]+j)<<" "; cout<<endl; return 0; }
2-6
/*********输入一个3x4的矩阵,编写函数 求其中的最大元素*******************/ #include <iostream> using namespace std; int main() { int a[3][4],i,j,max; cout<<"输入一个3x4的矩阵"<<endl; for(i=0;i<3;i++) for(j=0;j<4;j++) cin>>a[i][j]; cout<<"你输入的矩阵为: "<<endl; for(i=0;i<3;i++) { for(j=0;j<4;j++) cout<<a[i][j]<<'\t'; cout<<endl; } max=a[0][0]; for(i=0;i<3;i++) for(j=0;j<4;j++) { if(max<a[i][j]) max=a[i][j]; } cout<<"矩阵的最大值为: "<<max<<endl; return 0; }
3. 有n个人围成一个圆圈,从第一个人开始报数,从1到3循环,凡是报3的退出圈子,问最后退出圈子的人是原来的几号:
#include<iostream> using namespace std; int main() { int n; int a[100]; int count=0; a[0]=0; cout<<"规则是有n个人围成一个圆圈,从第一个人开始报数,从1到3循环,凡是报3的退出圈子"<<endl; cout<<"输入n的值:"<<endl; cin>>n; for(int i=0;i<n;i++) a[i]+=1; int j=1; while(count<=n) { for(;j<=n;j++) if(a[j-1]%3==0) { count+=3; break; } } cout<<"最后退出圈子的人是原来的"<<count-3<<"号"<<endl; return 0; }
4.一个班有5个学生,每一个学生有几门成绩(到底是几门自已定,或3或4或5或6),定义函数来完成下面功能:
计算第2门课成的平均分;
找出有2门以上成绩不及格的学生,并输出其学号和全部课程成绩;
找出平均成绩在90以上或者全部课程在85分以上的学生
#include <iostream> using namespace std; void fun0(int n) //学生的姓名 { char name[5][5]={"A","B","C","D","E"}; cout<<"姓名:"<<name <<'\t'; } void fun1(int a,int b,int c, int d,int e) //计算第2门课程的平均分; { double ave; ave=double(a+b+c+d+e)/5; cout<<"第2门课程的平均分为"<<ave<<"分"<<endl; cout<<endl; } void fun2(int *a)//找出有2门以上成绩不及格的学生,并输出其学号和全部课程成绩 { int i,j=0,*b; b=a; a++; for(i=1;i<5;i++) { if(*a<60) a++,j++; else a++; } if(j>=2) { int i; fun0(a[0]); cout<<"学号: "<<*b<<'\t'; b++; cout<<"四科成绩分别为: "; for(i=0;i<4;i++,b++) cout<<*b<<'\t'; cout<<endl; } } void fun3(int *a) //平均成绩在90以上或者全部课程在85分以上的学生 { int i,*b,*c,j=0,sum=0; double ave; b=c=a; a++,b++; for(i=0;i<4;i++,a++) sum+=*a; ave=double(sum)/4; for(i=0;i<4;i++) { if(*b>=85) b++,j++; else b++; } if(j==4 || ave>=90) { fun0(a[0]); } } int main() { int A[]={1,96,90,80,65}; //数组名为学生名字,第一个元素为学号,后面4个为成绩 int B[]={2,86,85,86,87}; int C[]={3,55,45,60,35}; int D[]={4,95,95,95,95}; int E[]={5,55,56,55,56}; fun1(A[2],B[2],C[2],D[2],E[2]); cout<<"2门以上成绩不及格的学生有"<<endl<<endl; fun2(A); fun2(B); fun2(C); fun2(D); fun2(E); cout<<endl; cout<<"平均成绩在90以上或者全部课程在85分以上的学生有"<<endl<<endl; fun3(A); fun3(B); fun3(C); fun3(D); fun3(E); cout<<endl<<endl; return 0; }
明哥这是以前作业的提交记录,网页不知道为什么显示不了啊!!
相关文章推荐
- myeclipse 2013下使用maven 3.2.1构建多模块项目
- myeclipse 2013下使用maven 3.2.1构建多模块项目
- Careercup - Microsoft面试题 - 5684901156225024
- zTree实现地市县三级级联DAO接口
- android 使用单例还是service?
- zTree实现地市县三级级联DAO接口
- 使用HBuilder基于HTML5编写新闻客户端APP的一些实验
- 我们好像在哪见过
- mongodb文档支持的数据类型
- 【The beauty of math】无限循环小数转分数
- WAMPServer更改web根目录
- zTree实现地市县三级级联数据库映射
- webservice发布小问题
- Android 异步查询框架AsyncQueryHandler的使用
- 【Cocos2d TestCpp实例模仿二】-- ActionsTest
- zTree实现地市县三级级联数据库映射
- 存储过程包与包体
- ExtJS4加载FormPanel数据的几种方式
- MongoDB 4.6.1 c++ driver 编译
- JAVA基础总结