绥化学院程序设计实践实验报告范例 参考
实验题目:循环结构程序设计
实验目的:
1.熟悉VC++6.0的运行环境,掌握C程序的执行方法; 2.掌握三种基本数据类型、部分运算符号和常用函数;
3.掌握三种循环控制语句及break和continue语句的使用方法; 4.掌握循环结构的嵌套及正确控制计数型循环结构次数的方法。 实验内容:
程序1:搬砖问题:36块砖,36人搬,男搬4,女搬3,两个小孩抬1砖,要求一次搬完,问男、女和小孩各若干? #include “stdio.h” main() {
int men,women,children; men=0;
while(men<=8) {women=0;
while(women<=11)
{children=36-men-women;
if((men*4+women*3+children/2= =36)&&children%2= =0)
printf(“men=%d,women=%d,children=%d\\n”,men,women,children); women++;} men++;} }
程序2 打印形状为直角三角形的乘法口诀。 #include \ main()
{int i,j,result; for (i=1;i<10;i++) { for(j=1;j
result=i*j;
printf(\表示左对齐,占3位*/ }
printf(\每一行后换行*/ } }
程序3 求1000以内的所有素数。 #include “stdio.h” main( ) {
int m,i;
for(m=2;m<=100;m++) { for(i=2;i<=m-1;i++) if(m%i==0) break; if(i>m-1) printf(\ } }
程序4:计算和统计旅客运费程序 。 由键盘输入旅客行李重量(w),按公式 :
若( w<=50kg )f=1.5*w ,若(w>50kg)f=1.5*50 + 2.8*(w-50) ( w>50kg )
1
绥化学院程序设计实践实验报告范例 参考
计算运费,要求:
(1)打印每位旅客的顺序号,行李重量,应付运费 ; (2)假定每天最多办理100人的行李托运手续或当w≤0时循环结束, 下班时打印出全天的运费总收入和办理的总人数。 方法一(while结构) #include “stdio.h” main( ) {
int num=0;
float w,f,total=0; scanf(\
while (w>0&&num<100 ) { if (w<=50) f=1.5*w;
else f=1.5*50+2.8*(w-50); num++;
printf ( \ total+=f; scanf (\ }
printf (\ TotalIncome=.2f\\n\}
方法二(do-while结构) #include “stdio.h” main( ) {
int num=0;
float w,f,total=0; do
{ scanf(\ if (w<=0) break; if (w<=50) f=1.5*w; else f=1.5*50+2.8*(w-50); num++;
printf ( \ %8.2f\\n\ total+=f;
} while (num<100);
printf (\ TotalIncome=.2f\\n\ }
方法三(for结构) #include “stdio.h” main( ) {
int num;
float w,f,total=0; scanf(\
for (num=1;w>0&&num<=100;num++) {if (w<=50) f=1.5*w;
else f=1.5*50+2.8*(w-50);
printf ( \ %8.2f\\n\ total+=f; scanf(\ }
printf (\ TotalIncome=.2f\\n\ }
2
绥化学院程序设计实践实验报告范例 参考
3
绥化学院程序设计实践实验报告范例 参考
实 验 二:数组
实验目的:1.更加灵活的使用一维数组和二维数组 2.把数组和指针结合使用 实验内容:
1.约瑟夫环问题
由n个人围成一个首尾相连的圈报数。从第一个人开始,从1开始报数,报到3的人出圈,剩下的人继续从1开始报数,直到所有的人都出圈为止。求出所有人的出圈顺序。 #include
{int a[10];
int n=8,i,k=0,j=1,len; len=n; i=0;
//给数组赋值 for(i=0;i //i为元素下标,j代表当前要报的数 ,len表示圈中当前人数 while(len>0){ if(a[k%n]>0){ if(j%3==0){ printf(\找到要出圈的人,并把圈中人数减一 ,最后一个人才输出 a[k%n]=-1; j=1; k++; len--; } else{//报数不是3 k++; j++; } } else//遇到空位了,就跳到下一位,但j不加一,也就是这个位置没有报数 k++; } } 2.学生成绩统计与分析 输入10名学生的英语、C语言、计算机文化基础成绩,统计每名学生三科成绩的平均分,分析三门课程的优秀率,85分以上为优秀。 #include int grade[10][4]; int i,j,average,egood,cgood,jgood; 4 绥化学院程序设计实践实验报告范例 参考 for(i=0;i<10;i++) { printf(\请输入第%d个学生的英语、c语言、计算机\\n\ for(j=0;j<3;j++) scanf(\ } egood=cgood=jgood=0; for(i=0;i<10;i++) //10个人 { average=0; for(j=0;j<3;j++) //三门课程 { average+=grade[i][j]; if(grade[i][j]>=85) { if(j==0) egood++; if(j==1) cgood++; if(j==2) jgood++; } } grade[i][3]=average/3; } for(i=0;i<10;i++) printf(\第%d个学生的三科平均分为:%d\\n\ printf(\英语成绩优秀的学生为%d\\n\ printf(\语言成绩优秀的学生为%d\\n\ printf(\计算机成绩优秀的学生为%d\\n\} 3.利用指针实现数组合并 数组a:“1,7,9,11,13,15,17,19”; 数组b:“2,4,6,8,10”, 两个数组合并为数组c,按升序排列。 #include { int paixu (int c[]); int a[8]={1,7,9,11,13,15,17,19}; int b[5]={2,3,6,8,10}; int c[13]; int *p,*q,*s; for(p=a,s=c;p<8+a;p++,s++) *s=*p; for(q=b;q paixu(int c[]) {int i,j,k; for(j=0;j<12;j++) 5