计算机科学与技术实验报告Word格式.docx
- 文档编号:13442558
- 上传时间:2022-10-10
- 格式:DOCX
- 页数:41
- 大小:623.99KB
计算机科学与技术实验报告Word格式.docx
《计算机科学与技术实验报告Word格式.docx》由会员分享,可在线阅读,更多相关《计算机科学与技术实验报告Word格式.docx(41页珍藏版)》请在冰豆网上搜索。
#include<
stdio.h>
stdlib.h>
voidf1(int*a,inti,intj)
{
intm,n,c;
intk;
m=i;
n=j;
k=a[(i+j)/2];
do{
while(a[m]<
k&
&
m<
j)m++;
while(a[n]>
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<
j)f1(a,m,j);
if(n>
i)f1(a,i,n);
}
intmain()
inta1[5],a2[5],c[10];
printf("
请输入两个数组,每组五个整数:
\n"
);
for(inti=0;
i<
5;
i++)
scanf("
%d%d"
&
a1[i],&
a2[i]);
{
c[i]=a1[i];
c[i+5]=a2[i];
}
f1(c,0,9);
排序后为:
10;
%d"
c[i]);
putchar('
\n'
system("
pause"
return0;
验证与结论:
程序运行正常,结果输出正确。
总结与心得体会:
本实验用到了循环结构对数组输入,这是对多个数据同时输入的一种非常方便的方法。
利用指针进行排序,由于形参和实参在数据传递上有单向性,在进行元素交换类数组函数的编写时,需要借用指针。
本实验将其中一个主要功能编写为函数,使代码模块化,利于阅读查错。
实验题目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]
请编程实现数据的输入和输出。
本实验中涉及多组数值,如数量、周数、价值等。
根据题目要求定义四个二维数组,分别表示生产和销售的数量及价值,再定义四个一维数组表示生产和销售的周数以及产品价值。
最后,根据题目中给定的计算方法理清数组之间关系,设计函数进行计算。
intM[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},Mtotal=0,Stotal=0;
intMt=0,St=0,sum=0;
for(intj=0;
j<
j++)
printf("
C[%d]="
j+1);
scanf("
%d"
C[j]);
4;
for(intj=0;
{
printf("
M[%d][%d]="
i+1,j+1);
scanf("
M[i][j]);
Mvalue[i][j]=M[i][j]*C[j];
S[%d][%d]="
S[i][j]);
Svalue[i][j]=S[i][j]*C[j];
Mweek[i]+=Mvalue[i][j];
Sweek[i]+=Svalue[i][j];
for(inti=0;
Mproduct[j]+=Mvalue[i][j];
Sproduct[j]+=Svalue[i][j];
Mtotal+=Mweek[i];
Stotal+=Sweek[i];
(a):
第%d周生成数量:
%d\n"
i+1,M[i][0]+M[i][1]+M[i][2]+M[i][3]+M[i][4]);
第%d周销售数量:
i+1,S[i][0]+S[i][1]+S[i][2]+S[i][3]+S[i][4]);
(b):
Mt+=M[i][j];
St+=S[i][j];
所有生产产品的总量:
Mt);
(c):
\n所有销售产品的总量:
St);
(d):
第%d种产品生产的总量:
j+1,M[0][j]+M[1][j]+M[2][j]+M[3][j]);
第%d种产品销售的总量:
j+1,S[0][j]+S[1][j]+S[2][j]+S[3][j]);
Mvalue[%d][%d]=%d\n"
i+1,j+1,Mvalue[i][j]);
Svalue[%d][%d]=%d\n"
i+1,j+1,Svalue[i][j]);
Mweek[%d]=%d\n"
i+1,Mweek[i]);
Sweek[%d]=%d\n"
i+1,Sweek[i]);
Mproduct[%d]=%d\n"
j+1,Mproduct[j]);
Sproduct[%d]=%d\n"
j+1,Sproduct[j]);
Mtotal=%d\n"
Mtotal);
Stotal=%d\n"
Stotal);
本实验计算方法已经给出,但涉及较多数组,关系复杂。
由于一个数组可以存放多个数据,导致数据之间关系难以理清。
求解这类问题时,要小心谨慎地先理清数据之间的关系,再根据给定的算法进行计算。
实验题目3:
编程将一个字符串插入到另一个字符串的第n个位置。
定义两个较大的数组,数据类型为字符型。
利用循环对数组赋值。
定义一个变量控制插入的位置。
用strlen函数计算两组字符串长度,在第二个数组中为第一个数组让开位置(留出空位,使原有元素后移至第一数组完全插入时末尾位置),用第一个数组中的字符串覆盖第二个数组中相应位置字符,达到插入的目的。
string.h>
intn,i,j;
intlen1,len2;
charstr1[256],str2[256];
请输入str1="
%s"
str1);
请输入str2="
str2);
len1=strlen(str2);
len2=strlen(str1)+n-1;
请输入n="
n);
for(i=n-1,j=0;
len2,j<
strlen(str1);
i++,j++)
str2[len1]=str2[i];
str2[i]=str1[j];
len1++;
str2);
本实验用了循环结构对数组进行赋值,这是对多个数据同时输入的一种非常方便的方法。
同时,本实验采取了将原有元素后移为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机科学 技术 实验 报告