C语言实验报告(数组排序))

C语言实验报告(数组排序)),第1张

#include<stdio.h>

#include<stdlib.h>

#define N 8

void select_sort(int a[],int n)

//选择排序实现

void select_sort(int a[],int n)//n为数组a的元素个数

{

  //进行N-1轮选择

  for(int i=0i<n-1i++)

  {

      int min_index = i

      //找出第i小的数所在的位置

      for(int j=i+1j<nj++)

      {

          if(a[j] <a[min_index])

          {

              min_index = j

          }

      }

      //将第i小的数,放在第i个位置;如果刚好,就不用交换

      if( i != min_index)

      {

          int temp = a[i]

          a[i] = a[min_index]

          a[min_index] = temp

      }

  }

}

int  main()

{

  int num[10] = {8, 3, 11, 7, 9, 84, 19, 25,22,33}

  select_sort(num, 10)

  for(int i=0i<10i++)

      printf("%d  ", num[i])

  printf("\n")

  system("pause")

  return 0

}

一、实验目的

1. 掌握定义数组的方法;

2. 能配合循环语句编程对数组进行 *** 作;

3. 了解控件数组的基本概念与简单编程。

二、实验内容

1. 填空完成下列程序段,产生一组[100,200]间的随机整数,显示这组数,并求出它们的平均值。

Private Sub Command1_Click()

Dim ab(20) As Integer ' 数组ab有______个元素

Dim i%, s As Integer

For i = 1 To 20

ab(i) = ____________ ' 填空为数组元素赋值

Print "第"i"个数是 "ab(i) ' 试改为用标签输出

s = ____________

__________

Print "平均值是:"s / 20

End Sub

2.编程输入10名学生某一门课的成绩,求出其中的最高分、最低分和所有学生的平均分。

3.编程输入10名学生姓名和一门课的成绩,输出最高分的学生姓名及其成绩,再显示成绩低于平均分的学生姓名及其成绩。

4. 用计算机模拟掷骰子游戏。编程序统计掷N次(N尽量的大,例如100000次)后各点数出现的次数。

〔提示〕定义数组Dian(1 To 6),分别存放1至6点出现的次数。产生一个[1,6]间的随机整数x,如果是3,就将Dian(3)的值增加1,依此类推。

5.制作一个模拟电话拨号的界面。按下标题为0~9的十个数字键时文本框中显示相应数字号码;按“退格”键时清除最后一位数字;按“清空”键时清除文本框中的所有数字。

[提示] 10个数字键设计成一个控件数组,可简化代码。

6.在文本框Text1中输入一串字符,用标签Label1显示其中出现频率最高的字母及其出现次数。

例如:输入“ This is a beautiful world. ”则输出“使用频率最高的是i,共出现3次。”

三、实验结果

请在此简述实验完成情况,并列出你编写的各工程的主要命令代码:

四、讨论

你在完成实验过程中遇到的最大困难是什么?

1.申请int变量,在for里初始化为2!

因为

之前给出的是

{1,1}

所以下标赋值从2开始!

每增加的一个数组,其值都是前面两个数组的值之差!!得出20个数组后并输出结果!~

1.无措

1.结果自己运算-

-

------------------------------------------------------------------------------------------------------------------------------------

2.不知道神马是杨辉三角,我高中生-

-

-----------------------------------------------------------------------------------------------------------------------------------

3.错误1:for(i=1i<11i++)

解释:数组下标从0开始

错误2:所有的for循环下标都从0开始!

按照以上错误运行结果是9个数的排序

结果自己运算

-----------------------------------------------------------------------------------------------------------------------------------

4.不会

----------------------------------------------------------------------------------------------------------------------------------

5.错误1:因为初始化数组是20个,所以不能使用gets

因为,gets函数在写入过程中,不会判断数据长度大小,等于说,

如果输入大于20,拿25来说,

前20个写入到指定的数组内存中,后5个就会溢出到其他内存,冲掉其他数据!·造成不必要的后果!

运行结果:str[1],[2],[3]

都有可能最大

-----------------------------------------------------------------------------------------------------------------------------------

欢迎追问,纯个人思考手写!望采纳···


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11142825.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存