C程序设计实验报告六
实验项目:7.3.1-1两两比较排序;7.3.1-2找最小排序;7.3.2打印杨辉三角形
姓名:蔡鹏
实验地点:家中
实验时间:2020.5.7
一、实验目的与要求:
1、巩固学生对一维数组这种数据结构的理解,增强其程序设计能力
2、巩固学生对二维数组这种数据结构的理解
二、实验内容
1、实验练习:7.3.1-1 冒泡排序法排序
1问题的简单描述:编写程序,利用随机函数产生10 个整数,并按升序排列输出。
2实验代码:
#include"stdio.h"#include"stdlib.h"#include"time.h"
int sort1(int s[],intn)
{inti,j;inttemp;for(i=0;i<9;i++)
{for(j=0;j<10-i;j++)
{if(s[j]
{
temp=s[j];
s[j]=s[j-1];
s[j-1]=temp;
}
}
}
}
main()
{int i,a[10];
srand(time(NULL));/*给出随机种子*/printf("随机产生10个整数:\n");for(i=0;i<10;i++)
{
a[i]=rand()%100;/*限制随机数是100以内*/}for(i=0;i<10;i++)
printf("%d",a[i]);
printf("\n");
sort1(a,i);
printf("排序后的结果:\n");for(i=0;i<10;i++)
printf("%d",a[i]);
}
3问题分析:刚开始不太会用数组,以及产生随机数不知道用啥函数。
2、实验练习:7.3.1-2 选择排序法排序
1问题的简单描述:编写程序,利用随机函数产生10 个整数,并按升序排列输出。
2实验代码:
#include"stdio.h"#include"stdlib.h"#include"time.h"
int sort2(int s[],intn)
{inti,j,k;inttemp;for(i=0;i
{ k=i;for( j=i+1;j<=n-1;j++)
{if(s[j]
{
k=j;
}
}if(k!=i)
{
temp=s[k];
s[k]=s[i];
s[i]=temp;
}
}
}
main()
{int i,a[10];
srand(time(NULL));
printf("随机产生10个整数:\n");for(i=0;i<10;i++)
{
a[i]=rand()%100;
}for(i=0;i<10;i++)
printf("%d",a[i]);
printf("\n");
sort2(a,10);
printf("排序后的结果:\n");for(i=0;i<10;i++)
printf("%d",a[i]);
}
3问题分析:这个程序是利用选择排序法对产生的随机数组进行排序,大致的做法和前面冒泡排序法的是差不多的,仅需修改一下排序函数即可。
三、实验练习:7.3.2-1 杨辉三角
1问题的简单描述:编写程序,从键盘输人行数,输出指定行数的杨辉三角形。
2实验代码:
#include"stdio.h"main()
{int a[50][50],i,j,n;
printf("请输入杨辉三角形的行数:");
scanf("%d",&n);for(i=1;i<=n;i++)
{
a[i][i]=1;
a[i][1]=1;
}for(i=3;i<=n;i++)
{for(j=2;j<=i-1;j++)
{
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}for(i=1;i<=n;i++)
{for(j=1;j<=i;j++)
printf("%5d",a[i][j]);
printf("\n");
}
printf("\n");
}
3问题分析:这题是一个二维数组的运用,一开始没搞清楚每个循环中每个语句的前后顺序,后面一直看着流程图不断地调整顺序才调好。
实验小结:本次实验主要用到了数组,在实验中对数组的运用还不是特别熟练,尤其再用到二维数组时做起来有点吃力,其次在实验中还运用了许多的函数,许多还是后来查找才知道用的,srand函数的运用,以及for语句的运用结合到一起,难度有了很大的提升,在学习数组的内容时还需要多多练习才能够更熟练的掌握。
原文链接:https://www.cnblogs.com/c-p-666/p/12864825.html
本文来自网络,不代表手讯网立场。