实验四 数组应用程序设计实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四数组的应用程序设计
一、实验目的
1.掌握C语言的一维数组和二维数组的应用;
2.掌握常用的排序算法;
3.掌握字符数组和字符串函数的使用;
二、实验内容
编写程序,完成如下功能
1. 编写程序实现如下功能,输入了20个整数,把这些整数存放在一个数组中,并且输出其中
的最大者与最小者及他们在数组中的下标、这20个数的和及它们的平均值。
2. 从键盘输入15整数,对这些数进行从大到小排序后按次序显示各个数。
3. 在整型数组M中存放12个非0 整数,使用scanf( )函数将12个整数从键盘读入到M中,
并要求M中有正数和负数,编写程序,将数组M中的所有正数存放在数组的前面,负数存放在数组的后面,并显示数组M中的各个元素的值。
4.从键盘输入一个字符串并存入字符数组中,分别统计其中的数字字符、字母、空格和其它字符的个数。
5. 从键盘输入一个字符串(小于50个字符,该字符串中可以含有字母、数字和空格),并存
入字符数组strArray中,将数组strArray中的字符颠倒后存入另外一个数组reverseArray 中(也就是第一个字符变成最后一个字符,第二个字符变成倒数第二个字符…,), 再把reverseArray数组中的各个字母变成其后的第5个字母(如A变成F,B变成G,…,Z变成E等),分别显示这两个数组中的各元素。
6*. 从键盘输入16个数组成一个4行4列的二维数组,(1)求对角线上的各个元素的和与积;
(2)求所有靠边元素的和与积;(3)求所有不靠边元素的和与积
7*. 已知有两个矩阵:
求矩阵的乘积:C = AB,并按行列显示矩阵C的各个元素。
8*.使用随机函数rand( ), 产生50个[0,100]之间的整数,并把这一批整数存在一个整型数组A中,定义另外一个整形数组B,请把A数组中的数按照从大到小的顺序放入数组B
中,最后,分别显示数组A和数组B的各个元素。
提示:随机函数int rand(void) 在头文件stdio.h中,该函数可以返回一个在[0,32767]之间的整数,本实验后面附有例子。
9*.定义一个50×50的整形二维数组,并对这个数组中的2500个元素赋随机的[1,100]之间的整形值,计算[1,100]这100个数在这个二维数组中出现的次数,并找出出现最多和出现最少的数。
10*.定义一个有30个元素的整形数组,然后使用随机函数rand( )给这30个元素赋值,要求这30个元素互不相同并且介于[0,100]之间,最后显示这个数组的30个元素的值与它们的下标, 及总共调用随机函数rand()的次数。
(随机数的生成方法见附录)
c语言中随机数产生函数rand( )的使用(来自网络)
rand(产生随机数)
相关函数
srand
表头文件
#include<stdlib.h>
定义函数
int rand(void)
函数说明
rand( )会返回一随机数值,范围在0至RAND_MAX 间。
在调用此函数产生随机数前,必须先利用srand( )设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。
关于随机数种子请参考srand()。
返回值
返回0至RAND_MAX之间的随机数值,RAND_MAX定义在stdlib.h,其值为2147483647。
范例
/* 产生介于1 到10 间的随机数值,此范例未设随机数种子,完整的随机数产生请参考
srand()*/
#include<stdlib.h>
main()
{
int i,j;
for(i=0;i<10;i++)
{
j=1+(int)(10.0*rand()/(RAND_MAX+1.0));
printf("%d ",j);
}
}
执行
9 4 8 8 10 2 4 8 3 6
9 4 8 8 10 2 4 8 3 6
srand(设置随机数种子)
相关函数
rand
表头文件
#include<stdlib.h>
定义函数
void srand (unsigned int seed);
函数说明
srand()用来设置rand()产生随机数时的随机数种子。
参数seed必须是个整数,通常可以利用geypid()或time(0)的返回值来当做seed。
如果每次seed都设相同值,rand()所产生的随机数值每次就会一样。
返回值
范例
/* 产生介于1 到10 间的随机数值,此范例与执行结果可与rand()参照*/
#include<time.h>
#include<stdlib.h>
main()
{
int i,j;
srand((int)time(0));
for(i=0;i<10;i++)
{
j=1+(int)(10.0*rand()/(RAND_MAX+1.0));
printf(" %d ",j);
}
}
执行
5 8 8 8 10 2 10 8 9 9
2 9 7 4 10
3 2 10 8 7。