我的编程空间,编程开发者的网络收藏夹
学习永远不晚

c语言中实现数组几个数求次大值

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

c语言中实现数组几个数求次大值

c语言数组几个数求次大值问题

#include<stdio.h>
int main()
{
    int a[] = { 7, 4, 9, 9, 6 };
    int len = sizeof(a) / sizeof(int);//求数组元素个数
    int max_subscript = 0;//设置最大值下标为0,为数组第一个数
    int second_subscript = 1;//设置次大值下标为1,为数组第二个数
    
    while (1)
    {
    
        for (int i = 0; i < len;i++)//从下标1(即第二个元素开始遍历)开始遍历
        {
            if (max_subscript == i)
            {
                continue;//跳过原来最大值的下标,直接开始i+1的循环
            }
            
            if (a[i]>a[max_subscript])//遍历的值a[i]比最大值都大那么此时的最大值为a[i],次大值为原来的最大值即a[max_subscript]
            {            
                second_subscript = max_subscript;//先赋值次大值为原来的最大值
                max_subscript = i;//赋值现在的最大值为a[i]
            }
            else
            {
                
                    if (a[i] > a[second_subscript])
                    {
                        second_subscript = i;
                    }
            }
 
        }
        if (a[max_subscript] != a[second_subscript])
        {
            
            break;  //最大值和次大值不相等就跳出循环,
        }
        a[second_subscript] = 0;//相等就把次大值得值重置为0
    }
    printf("最大值a[max_subscript]=%d,次大值a[second_subscript]=%d\n", a[max_subscript], a[second_subscript]);
    printf("最大值下标max_subscript=%d,次大值下标second_subscript=%d\n", max_subscript, second_subscript);
    getchar();
    return 0;
}

c语言输出数组中最大值和次大值

本题主要的得分点在怎么求数组中的最大值和次大值,方法有很多,最常见的就是对数组进行排序,可以很轻松得到最大值和次大值。本题采用另外一个思路,第一次先在数组中找到最大值,第二次查找剩下的最大值(排除掉最大值,不是删除)

另外比较困扰的一点就是怎么直接从带空格的输入中直接得到整型数字,而不是像本题一样先当字符串去接收,然后从字符串中转数字保存到另外的一个整型数组中

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stddef.h>
#include <ctype.h>
 
int main()
{
    // please write your code here
    char oriInput[200] = {0};
    int inputInt[100] = {0};
    fgets(oriInput,200,stdin);
    int len = strlen(oriInput);
    int i=0,k=0;
    int fimax=0,semax=0;
    char *pStart = oriInput;
    for(i=0; i<len; i++)
    {
        if(oriInput[i] == ' ')
        {
            oriInput[i] = '\0';
            inputInt[k++] = atoi(pStart);
            pStart = &oriInput[i+1];
        }
    }
    inputInt[k] = atoi(pStart);
    for(i=0; i<=k; i++)
    {
        if(fimax < inputInt[i])
            fimax = inputInt[i];
    }
    for(i=0; i<=k; i++)
    {
        if(semax < inputInt[i] && inputInt[i] != fimax)
            semax = inputInt[i];
    }
    if(fimax == semax)
        semax = 0;
    printf("%d %d",fimax,semax);
    return 0;
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

c语言中实现数组几个数求次大值

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

c语言中实现数组几个数求次大值

这篇文章主要介绍了c语言中实现数组几个数求次大值,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-12-08

C语言怎么求数组最大最小值

可以通过遍历数组的方式找到最大值和最小值。```c#include int main() {int arr[] = {10, 5, 8, 3, 15};int size = sizeof(arr) / sizeof(arr[0]);int
2023-10-11

c语言函数如何求两个数的最大值

这篇文章主要介绍了c语言函数如何求两个数的最大值问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-12-08

c语言怎么求两个整数的最大值

可以使用条件判断语句来求两个整数的最大值,具体代码如下:```c#include int main() {int num1, num2, max;printf("请输入两个整数:\n");scanf("%d%d", &num1, &num2
2023-10-10

C语言如何实现删除某一个数组值

这篇文章主要介绍C语言如何实现删除某一个数组值,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、前言在家里闲着还是闲着,这几天见证了Python各种数据结构的强大。Python中的数据类型如:列表、元组、字典等都具有
2023-06-25

如何用php语言定义一个数组并求出最大值

这篇文章主要讲解了“如何用php语言定义一个数组并求出最大值”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何用php语言定义一个数组并求出最大值”吧!方法:1、用array()定义数组并初
2023-06-30

怎么用php语言定义一个数组并求出最大值

方法:1、用array()定义数组并初始化,语法“$数组变量名=array(key1=>value1,key2=>value2...,keyN=>valueN);”;2、用max()获取已定义数组的最大值,语法“max($数组变量名)”。本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑用php语言定义一个数组并求出最大值的方法步骤1、使用array()函数定义数组并初始化可以
2022-06-14

怎么在C语言中使用pow()函数求x的y次方值

这篇文章给大家介绍怎么在C语言中使用pow()函数求x的y次方值,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。C语言 pow() 函数用来求 x 的 y 次方的值。头文件:math.h语法/原型:double pow(
2023-06-08

用C语言编程实现最大公约数求解

标题:用C语言编程实现最大公约数求解最大公约数(Greatest Common Divisor,简称GCD)是指能够同时整除两个或多个整数的最大正整数。求解最大公约数对于一些算法和问题解决非常有帮助。在本文中,将通过C语言编程来实现求解最
用C语言编程实现最大公约数求解
2024-02-22

linux shell实现求一个多维数组中的最大和最小值

同事发了一道shell题,是求一个多维数组中的最大和最小值 如文件 99file:33 55 23 56 99 234 234 545 6546 34 11 4
2022-06-04

C++怎么实现数组中元素组合出最大值

本篇内容介绍了“C++怎么实现数组中元素组合出最大值”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!数组中元素组合出最大值如题:这可以算是一个
2023-06-30

linux shell如何实现求一个多维数组中的最大和最小值

这篇文章主要介绍了linux shell如何实现求一个多维数组中的最大和最小值,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。同事发了一道shell题,是求一个多维数组中的最大
2023-06-09

C语言实现求最大公约数的方法有哪些

这篇文章主要介绍C语言实现求最大公约数的方法有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!题目描述求任意两个正整数的最大公约数问题分析最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个
2023-06-22

怎么在JavaScript中实现一个数组惰性求值库

今天就跟大家聊聊有关怎么在JavaScript中实现一个数组惰性求值库,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。javascript是一种什么语言javascript是一种动态类
2023-06-14

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录