实验报告(数组)

7-2 求最大值及其下标(20 分)

本题要求编写程序,找出给定的n个数中的最大值及其对应的最小下标(下标从0开始)。

输入格式:

输入在第一行中给出一个正整数n(1<n≤10)。第二行输入n个整数,用空格分开。

输出格式:

在一行中输出最大值及最大值的最小下标,中间用一个空格分开。

输入样例:

6
2 8 10 1 9 10

输出样例:

10 2

流程图: 

代码:

  #include<stdio.h>
  int main()
  {
    int n,i,j;
    scanf("%d",&n);
    int a[100];
    for(i=0;i<n;i++)
    {
      scanf("%d",&a[i]);
    }
    for(j=0;j<n;j++)
    {
       if(a[0]<a[j])
       {
         a[0]=a[j];
         i=j;
      }
        if(a[0]==a[j])
      {
        a[0]=a[j];
           if(i>j)
         {
            i=j;
          }
         }
       }
     printf("%d %d",a[i],i);

   return 0;
  }

7-6 冒泡法排序(20 分)

将N个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们。通过一遍扫描,则最后一个元素必定是最大的元素。然后用同样的方法对前N?1个元素进行第二遍扫描。依此类推,最后只需处理两个元素,就完成了对N个数的排序。

本题要求对任意给定的K(<N),输出扫描完第K遍后的中间结果数列。

输入格式:

输入在第1行中给出N和K(1≤K<N≤100),在第2行中给出N个待排序的整数,数字间以空格分隔。

输出格式:

在一行中输出冒泡排序法扫描完第K遍后的中间结果数列,数字间以空格分隔,但末尾不得有多余空格。

输入样例:

6 2
2 3 5 1 6 4

输出样例:

2 1 3 4 5 6

流程图:

代码:

  #include"stdio.h"
  int main(){
     int n=0,k=0;//n为输入的样例数,k为交换次数
     scanf("%d %d",&n,&k);//
     int a[100];
     for(int i=100-1;i>=0;i--){
      a[i]=0;//数组初始化
      }
      for(int i=0;i<n;i++){
       scanf("%d",&a[i]);
      }
      for(int i=1;i<=k;i++){
       for(int j=0;j<n-1;j++){
          if(a[j]>a[j+1]){
           int temp=a[j];
           a[j]=a[j+1];
              a[j+1]=temp;
            }
         }
      }
       for(int i=0;i<n-1;i++){
         printf("%d ",a[i]);
       }
    printf("%d",a[n-1]);
       return 0;
  }

7-18 求整数序列中出现次数最多的数(15 分)

本题要求统计一个整型序列中出现次数最多的整数及其出现次数。

输入格式:

输入在一行中给出序列中整数个数N(0<N≤1000),以及N个整数。数字间以空格分隔。

输出格式:

在一行中输出出现次数最多的整数及其出现次数,数字间以空格分隔。题目保证这样的数字是唯一的。

输入样例:

10 3 2 -1 5 3 4 3 0 3 2

输出样例:

3 4

流程图:

代码:

#include<stdio.h>

int main()
{
    int i, j, n, max, a[1010], b[1010] = {};
    scanf("%d", &n);
    for(i = 0; i < n; i++)
    scanf("%d", &a[i]);
for(i = 0; i < n; i++)
for(j = 0; j < n; j++)
if(a[i] == a[j])
 b[i]++;
max = b[0], j = 0;
for(i = 0; i < n; i++)
if(b[i] > max)
{
  max = b[i];
  j = i;
  }
printf("%d %d\n", a[j], max);
return 0;
}

数组最后排名截图:

与同学互评代码:

互评同学:王丹

同学用了一维数组。

同学的代码用来太多的循环嵌套,不易明白。

就本题,更喜欢自己的代码。

原文地址:https://www.cnblogs.com/huishan/p/8147504.html

时间: 2024-08-30 12:53:36

实验报告(数组)的相关文章

第七章实验报告(数组实验)

C语言程序设计实验报告 实验项目: 1.一维数组的应用 2.二维数组的应用 3.字符数组应用 姓名:徐溢璠     实验地点: 514实验室       实验时间:2019年5月29日 一.实验目的与要求 1.一维数组的应用 定义一个一维整型数组,其大小为10,即它能存放10个数据: 使用循环语句,利用随机函数产生10个整数存放在数组中: 编写排序函数sort1(): 使用循环语句,将排好序的10个数依次输出. 2.二维数组的应用 怎样定义和使用二维数组: 怎样用循环进行二维数组中值的计算: 使

数组实验报告 张文扬

数组实验报告 题目一:数组元素循环右移问题 1. 本题PTA提交列表 2. 设计思路(含流程图) #3.本题调试过程碰到问题及PTA提交列表情况说明. 本题遇到的的格式错误不知道在哪里,答案没有错,设计思路是分别构造两个函数, 一个输入函数,一个change函数用来平移数组,用取余来实现n(数组长度)<m(平移数) 题目二:A-B 1. 本题PTA提交列表 2. 设计思路(含流程图) 3.本题调试过程碰到问题及PTA提交列表情况说明 设计思路为分别设计两个函数real和delete,real函数

第七章数组实验报告

C程序设计实验报告 实验项目: 数组实验 姓名: 廖云福 实验地点: 514物联网实验室 实验时间:2019年5月29日 一实验项目 7.3.1一维数组的应用 7.3.2二维数组的应用 7.3.3字符数组的应用 一.实验目的和要求 a.掌握一维和多维数组的定义和数组元素的引用方法. b.了解一维数组和多维数组初始化方法. c.学习一维和多维数组的基本算法. d.掌握字符数组的定义.初始化方法和元素的引用方法. e.掌握C语言提供的对字符串进行处理的基本库函数. 二.实验内容 实验练习一.冒泡排序

数据结构与算法 第四次实验报告 图

数据结构与算法 第四次实验报告 姓名:许恺 学号:2014011329 班级:计算机14-1     中国石油大学(北京)计算机科学与技术系 1.图的定义,文件为"Graph.h" #ifndef GRAPH_H//定义头文件 #define GRAPH_H #include<string>//引入标准库中的头文件 using namespace std; const int MaxSize=12; struct ArcNode//定义边表结点 { int adjvex;/

第三次实验报告 敏捷开发与XP实践

一.  实验内容 (一)敏捷开发与XP 摘要:一项实践在XP环境中成功使用的依据通过XP的法则呈现,包括:快速反馈.假设简单性.递增更改.提倡更改.优质工作.XP软件开发的基石是XP的活动,包括:编码.测试.倾听.设计. 学习:XP是一种更加灵活的开发方式和理念,通过迅速的反应及时充分修改程序,保证所有团队成员对资源和责任的共享:适用于“小而精”的团队开发.同时,其所倡导的“倾听”也是实现了程序开发“需求至上”的终极目标. (二)编码标准 编码是一个即主观又客观的过程,每个程序员都有他自己的编程

第三次实验报告 之 五子棋

https://github.com/1246251747/3/blob/master/12.txt 实 验 报 告 实验名称:  五子棋实验报告 姓名:     王文政           学 号:  201303011159 班级:计科13-1 学院:   信息学院 五子棋JAVA实验报告 一.实验目的和要求 1.能够用编程语言实现一个简单的五子棋程序 2.在实际系统中使用.实现人工智能的相关算法 3.进一步加深对人工智能算法的理解 二.五子棋的基本常识与原理 1.五子棋的起源 五子棋,是一

结对项目实验报告

结对实验报告 结对人曹文静的地址: http://www.cnblogs.com/liandiexueying/ 一.实践目标: 敏捷方法之结对编程实践 学会与他人合作 基于项目的Github源代码管理 继续学习JUnit4单元测试 形成良好的编码风格 二.结对项目参考题目 连连看小游戏. 三.实验报告内容 1.题目简介 游戏规则是模仿网络上普通的连连看游戏,主要是鼠标两次点击的图片能否消去的问题.当前,前提是点击两张相同的图片,若点击的是同一张图片或者两张不同的图片,则不予处理.在两张想同图片

Java实验一实验报告

实验一 Java开发环境的熟悉 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验要求 1.没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器>课程: 2.完成实验.撰写实验报告,实验报告模板见QQ群,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等).解决办法(空洞的方法如“查网络”.“问同学”.“看书”等一律得0分)以及分析(从中可以得到什么

操作系统实验报告三

操作系统实验报告三 姓名:许恺 学号:2014011329 日期:2016.11.22 题目1:设计一段内存结构,能够缓存一定数量的网页,在客户端访问时,首先从内存中查找是否存在客户端访问的网页内容,如果存在,则直接从内存中将相应的内容返回给客户端:如果不存在,则从磁盘中将网页内容读入到内存,并返回给客户端   1.思想以及准备怎么做 在刚刚读完题目之后我的想法已经有了一点感觉要怎样做了,因为报告拖了比较久,所以老师也说过很多,好了直奔主题,首先要设计一段内存结构,用来缓存网页,其实就是做几个能

操作系统ucore lab1实验报告

操作系统lab1实验报告 [练习1] 理解通过 make 生成执行文件的过程.(要求在报告中写出对下述问题的回答) 在此练习中,大家需要通过阅读代码来了解: 1. 操作系统镜像文件 ucore.img 是如何一步一步生成的?(需要比较详细地解释 Makefile 中 每一条相关命令和命令参数的含义,以及说明命令导致的结果) 2. 一个被系统认为是符合规范的硬盘主引导扇区的特征是什么? [练习1.1] 1.生成ucore.img需要kernel和bootblock 生成ucore.img的代码如下