源程序文件名: 最小二乘法.cpp
7.有n个人围成一圈,顺序排号。从第一个人开始报数(从1到m报数),凡报到m的人退出圈子,问最后留下的是原来第几号。 程序编制要点(知识点、程序框图):
开始 输入总人数和报的数n 当报到n时,数组元素位赋0值 检索非零数即可 输出结果 结束
源程序代码:
#include
#include
#define MAX 100 main() {
int a[MAX]; int m,n;
int i,k,length;
printf(\请输入n和m(n>m),中间以空格结束!\\n当只剩余一个人时候,自动结束,例如输入 2 1;不会把2个人都删除了.\\n当删除了第一个人之后,则先结束程序,于是输出2\\n\ scanf(\
if(n>=MAX||n printf(\您的输入不符合要求!\\n\ return; } for(i=1;i<=n;i++)//开始赋值 初始化 { a[i]=i; } length=n;//初始化 i=1; k=1; while(1) { if(a[i]>0) { if(length==1) { break; } if(k>=m) { a[i]=0; k=1; length--; } else//k k++; } } i++; i=i>n?1:i; } printf(\最后剩余的下标为%d\\n\ } 程序执行结果(拷屏): 源程序文件名: 8报数.cpp 8.构建一个基本的学生成绩信息档案管理系统,学生信息包括:学号、姓名、性别、三门课程成绩及三门课程平均成绩。要求:(I)打印出每位学生三门课的平均成绩和总平均成绩及;(II) 各门课程所有学生的平均成绩。(提示:考虑使用结构体) 程序编制要点(知识点、程序框图): 开始 输入学生信息 对数据进行求均值处理 输出结果 结束 源程序代码: #include using namespace std; struct Student { string name[100]; char sex[100]; int num[100]; double score[100][3]; double avg[100]; double sum_avg; double Avg[3]; }; int main() { Student stu; int i,j,n; double sum=0,Avg_sum=0; cout<<\输入学生人数:\ cin>>n; for (i=0;i cout<<\输入学生\学号、姓名、性别,三门课的成绩信息:\ cin>>stu.num[i]>>stu.name[i]>>stu.sex; for(j=0;j<3;j++) cin>>stu.score[i][j]; } for (i=0;i stu.avg[i]=(stu.score[i][0]+stu.score[i][1]+stu.score[i][2])/3; } for (i=0;i sum=sum+stu.avg[i]; } stu.sum_avg=sum/n; for (i=0;i<3;i++) { for (j=0;j Avg_sum=Avg_sum+stu.score[j][i]; } stu.Avg[i]=Avg_sum/n; Avg_sum=0; } cout<<\每位学生的三门课的平均成绩\ for (i=0;i cout<<\输出学生\的三门课平均成绩:\ } cout<<\总平均成绩\ cout< cout<<\各门课程所有学生的平均成绩\ for (i=0;i<3;i++) { cout<<\输出课程\所有学生的平均成绩:\ } return 0; } 程序执行结果(拷屏):