C语言标准库函数使用与编译处理实验报告.doc
文本预览下载声明
标准库阑数使用4编译处理
实验题0标准库函数使用与编译预处理实验时间2016-4-28实验地点DS1408实验成绩实验性质□验证性 V设计性□综合性
教师评价:
□算法/实验过程正确;□源程序/实验内容提交 □程序结构/实验步骤合理;
□实验结果正确; □语法、语义正确; □报告规范;
其他:
评价教师签名:
一、实验目的
1、 掌捤c项n的一般结构、程序的幵发环境、过程
2、 掌掘函数的调用、参数传递用法。
3、 掌掘随机数、数组的使用。
二、实验项目内容(实验题目)
设某次活动有20个学屯参加,每个学屯有一个学号,学号为8位正整数,以2011 开始,后4位为随机数。要求编写C程序实现下Ifl丨的功能
1、 使工程文件的方法来分别存放C源程序,文件名为a.cpp、b.cpp、c.cpp, 也可以自己取名。
2、 编写生成学号(姓名:6个字母,选作)的函数、排序函数(用于对学号进行 排序);
3、 要求将己的信息放入到排序完成后学号数组开始位置。
4、 编写进行抽奖的闲数,抽桨规则是三等奖3名,二等奖2名,一等奖1名。
5、 编写主函数进行测试,并打印出结果。
三、源程序(实验过程或算法)
1、算法如下 首先对a[20j数组
调)|jsuijishu涵数:利】|j随机数?数产生20个2011XXXX的随机数。
调用paixu函数:利用冒泡排序,将a数组升序排列。
冒泡排序.? 1.从第一个位H开始,依次比较相邻两个位S上的数据,若是逆序则交换顺序,一趟扫 描后。M大的数据排到了M后而。
2.不考虑己经排好的数掘,重复1。
调用charu函数:若产生的随机数有输入的学号,则调换该数与啊a[0]的位11,赉则将a[0] 强制替换为输入的学号。
对b[6]数组
调用choujiang味丨数:利用随机数W数产也6个0?19的随机数。并将每个数与之前产生的数比较,
创建时间:2016.5.5
直到六个数互不相同。
最后
任意顺序打印出六个a[b[]]数,即为一二三等奖。 2、源程序如下
实验3.cpp
#include nstdafx.hn #includestdio.h
#includestdlib.h
#includetime.h int main()
{
void suijishu(int a[]); void paixu(int a[]); void charu(int a[]); void choujiang(int b[]);
inta[20],i,x,b[6];
suijishu(a);
paixu(a);
charu(a);
choujiang(b);
primf(”获得三等奖的是An”); for(i=0;i3;i++)
{
x=b[i];
printf(n%dW,,a[x]);
printff获得二等奖的是:\n); for(i=3;i5;i++)
{
x=b[il;
printf(,f%d\nr,,a[x]);
printf(获得一等奖的是 x=bf51;
printf(,f%d\nr,,a[x]);
return 0;
a.cpp
#include ’’stdafx.h” #includestdlib.h #includetime.h
void suijishu(int a[])
{
int i;
srand((unsigned)time(NULL));
for(i=0;i19;i++)
a[i]1000+rand()%9000;
b.cpp
#include ’’stdafx.h” void paixu(int a[])
{
int i,j,t;
for(i=0;i19;i++)
for(j=l;j20-i;j++)
if(a[j]aU-l])
{
t=a[j];
a[jl=a[j-ll;
a〇-l]=t;
c.cpp
#include stdafx.h” void charu(int a| |)
{
int x,y;
printf(n请输入你的学号:\nn);
scanf(%d”,x);
for(int i=l ;i20;i++)
{
if(a[i]==x)
{
y=a[0];
a[〇]=a[i];
a[i]=y;
}
else
a[0]=x;
d.cpp
#include 丨’stdafx.h’’
#includestdlib.h
#includetime.h void choujiang(int b[])
{
srand((unsigned)time(NULL)); for(int i=0;i6;i++)
{
b[i]=rand()%20; for(int j=i-l ;j=0;j—) while(b[i]==b[j]) b[i]=rand()
显示全部