C语言程序设计实验报告(6)

2021-01-24 13:15

阅读:755

标签:bsp   运用   理解   printf   数组   能力   二维数组   随机数   项目   

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[],int n)
{
     int i,j;
     int temp;
     for(i=0;i9;i++)
     {
         for(j=0;j10-i;j++)
         {
             if(s[j]1])
             {
                 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;i10;i++)
     {
         a[i]=rand()%100;/*限制随机数是100以内*/ 
     }
     for(i=0;i10;i++)
     printf("%d  ",a[i]);
     printf("\n");
     sort1(a,i);
     printf("排序后的结果:\n");
     for(i=0;i10;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[],int n)
{
    int i,j,k;
    int temp;
    for(i=0;i1;i++)
    {   k=i;       
        for( j=i+1;j1;j++)
        {
            if(s[j]s[k])
            {
                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;i10;i++)
    {
        a[i]=rand()%100;
    }
    for(i=0;i10;i++)
    printf("%d  ",a[i]);
    printf("\n");
    sort2(a,10);
    printf("排序后的结果:\n");
    for(i=0;i10;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)
    {
        a[i][i]=1;
        a[i][1]=1;
    }
    for(i=3;i)
    {
    for(j=2;j1;j++)
        {
            a[i][j]=a[i-1][j-1]+a[i-1][j];
        }
    }
    for(i=1;i)
    {
        for(j=1;j) 
        printf("%5d",a[i][j]);        
        printf("\n");  
    }
        printf("\n");
  
}

3问题分析:这题是一个二维数组的运用,一开始没搞清楚每个循环中每个语句的前后顺序,后面一直看着流程图不断地调整顺序才调好。


 


 

实验小结:本次实验主要用到了数组,在实验中对数组的运用还不是特别熟练,尤其再用到二维数组时做起来有点吃力,其次在实验中还运用了许多的函数,许多还是后来查找才知道用的,srand函数的运用,以及for语句的运用结合到一起,难度有了很大的提升,在学习数组的内容时还需要多多练习才能够更熟练的掌握。


 

 

C语言程序设计实验报告(6)

标签:bsp   运用   理解   printf   数组   能力   二维数组   随机数   项目   

原文地址:https://www.cnblogs.com/c-p-666/p/12864825.html


评论


亲,登录后才可以留言!