计算机科学与技术实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

哈尔滨工程大学《程序设计基础》实验报告

基础实践二

姓名:王明班级:

学号:

实验时间: 2017 年 5 月 8 日

哈尔滨工程大学计算机基础课程教学中心

实验五

实验题目1:

输入两个整数数组,每个数组有5个整数,将两者合并并排序输出。

设计思想:定义两个5个元素的数组,一个10个元素的数组,数据类型为整型,通过for循环输入前两个数组的值,并依次存入第三个数组中。另外编写排序函数,在主函数中调用对第三个数组中的元素排序并输出。

实验代码及注释:

#include<>

#include<>

void f1(int *a, int i, int j) {

int m, n, c;

int k;

m = i;

n = j;

k = a[(i + j) / 2];

do {

while (a[m]

while (a[n]>k&&n>i) n--;

if (m <= n) {

c = a[m];

a[m] = a[n];

a[n] = c;

m+=1;

n-=1;

}

} while (m <= n);

if (m

if (n>i) f1(a, i, n);

}

int main()

{

int a1[5],a2[5],c[10];

printf("请输入两个数组,每组五个整数:\n");

for(int i=0;i<5;i++)

scanf("%d %d",&a1[i],&a2[i]);

for(int i=0;i<5;i++)

{

c[i]=a1[i];

c[i+5]=a2[i];

}

f1(c,0,9);

printf("排序后为:\n");

for(int i=0;i<10;i++)

printf("%d ",c[i]);

putchar('\n');

system("pause");

return 0;

}

验证与结论:

程序运行正常,结果输出正确。

总结与心得体会:

本实验用到了循环结构对数组输入,这是对多个数据同时输入的一种非常方便的方法。利用指针进行排序,由于形参和实参在数据传递上有单向性,在进行元素交换类数组函数的编写时,需要借用指针。本实验将其中一个主要功能编写为函数,使代码模块化,利于阅读查错。

实验题目2:

某公司生成5种产品,每周记录生产的每种产品数量和销售数量。在每个月月末,公司将对其生产规划进行评估。该评估需要以下一个或多个信息:(a)每周生产和销售的数量;

(b)所有生产产品的总量;

(c)所有销售产品的总量;

(d)每种产品生产和销售的总量;

假设生产和销售的产品分别用二维数组M[4][5]和S[4][5]表示。其中,M[i][j]表示第i周生产第j种产品的数量。S[i][j]表示第i周销售第j种产品的数量。假设使用一维数组C[5]来表示每种产品的价格。其中,C[i]表示第j种产品的价格。数组M、S和C的值都在程序中输入。

定义两个二维数组Mvalue和Svalue来表示生产和销售的产品价值。输出变量的计算方式如下:

Mvalue[i][j]=第i周生产第j种产品的价值=M[i][j]*C[i]

Svalue[i][j]=第i周销售第j种产品的价值=S[i][j]*C[i]

Mweek[i]=在i周里生产的产品价值=(j从1到5 求和)Mvalue[i][j] Sweek[i]=在i周里所有产品的产品价值=(j从1到5 求和)Svalue[i][j] Mproduct[i]=在本月里生成第j种的产品价值=(i从1到 4 求和)Mvalue[i][j]

Sproduct[i]=在本月里销售第j种的产品价值=(i从1到 4 求和)Svalue[i][j]

Mtotal=在本月里生成所有产品的产品总价值=(i从1到4 求和)Meek[i][j] Stotal=在本月里销售所有产品的产品总价值=(i从1到4 求和)Seek[i][j]

请编程实现数据的输入和输出。

设计思想:本实验中涉及多组数值,如数量、周数、价值等。根据题目要求定义四个二维数组,分别表示生产和销售的数量及价值,再定义四个一维数组表示生产和销售的周数以及产品价值。最后,根据题目中给定的计算方法理清数组之间关系,设计函数进行计算。

实验代码及注释:

#include<>

#include<>

int main()

{

int

M[4][5]={0},S[4][5]={0},C[5]={0},Mvalue[4][5]={0},Svalue[4][5]={0 },Mweek[5]={0},Sweek[5]={0},Mproduct[5]={0},Sproduct[5]={0},Mtota l=0,Stotal=0;

int Mt=0,St=0,sum=0;

for(int j=0;j<5;j++)

{

printf("C[%d]=",j+1);

scanf("%d",&C[j]);

}

for(int i=0;i<4;i++)

{

for(int j=0;j<5;j++)

{

printf("M[%d][%d]=",i+1,j+1);

scanf("%d",&M[i][j]);

Mvalue[i][j]=M[i][j]*C[j];

}

}

for(int i=0;i<4;i++)

{

for(int j=0;j<5;j++)

{

printf("S[%d][%d]=",i+1,j+1);

scanf("%d",&S[i][j]);

相关文档
最新文档