c语言程序三角形实验报告,C语言程序设计实验报告(6)

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

本文来自网络,不代表手讯网立场。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值