iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >c语言中实现数组几个数求次大值
  • 520
分享到

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

c语言数组c语言求次大值c语言次大值 2022-12-08 20:12:11 520人浏览 安东尼
摘要

目录C语言数组几个数求次大值问题c语言输出数组中最大值和次大值c语言数组几个数求次大值问题 #include<stdio.h> int main() { int

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;
}

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

--结束END--

本文标题: c语言中实现数组几个数求次大值

本文链接: https://www.lsjlt.com/news/174327.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • c语言中实现数组几个数求次大值
    目录c语言数组几个数求次大值问题c语言输出数组中最大值和次大值c语言数组几个数求次大值问题 #include<stdio.h> int main() { int ...
    99+
    2022-12-08
    c语言数组 c语言求次大值 c语言次大值
  • C语言怎么求数组最大最小值
    可以通过遍历数组的方式找到最大值和最小值。```c#include int main() {int arr[] = {10, 5, ...
    99+
    2023-10-11
    C语言
  • c语言函数如何求两个数的最大值
    目录c语言函数求两个数的最大值c语言​求十个数中的最大值解题思路具体代码总结c语言函数求两个数的最大值 #include <stdio.h> max(int a,int...
    99+
    2022-12-08
    c语言函数 求两个数最大值 c语言求最大值
  • c语言怎么求两个整数的最大值
    可以使用条件判断语句来求两个整数的最大值,具体代码如下:```c#include int main() {int num1, num...
    99+
    2023-10-10
    c语言
  • c++求数组最大最小值函数的实现
    目录求数组元素最大最小值函数c++中min和max函数求数组元素最大最小值函数 #include<iostream> #include<algorithm> ...
    99+
    2024-04-02
  • C语言如何实现删除某一个数组值
    这篇文章主要介绍C语言如何实现删除某一个数组值,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、前言在家里闲着还是闲着,这几天见证了Python各种数据结构的强大。Python中的数据类型如:列表、元组、字典等都具有...
    99+
    2023-06-25
  • C语言实现删除某一个数组值的方法
    目录1、前言2、删除数组中的元素1、前言 在家里闲着还是闲着,这几天见证了Python各种数据结构的强大。Python中的数据类型如:列表、元组、字典等都具有其的特点。列表无需要设定...
    99+
    2024-04-02
  • 如何用php语言定义一个数组并求出最大值
    这篇文章主要讲解了“如何用php语言定义一个数组并求出最大值”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何用php语言定义一个数组并求出最大值”吧!方法:1、用array()定义数组并初...
    99+
    2023-06-30
  • c语言如何求三个数的平均值
    要求三个数的平均值,首先需要将这三个数相加,然后再除以3。以下是用C语言编写的示例代码:```c#include int main(...
    99+
    2023-08-14
    c语言
  • c语言怎么用sizeof求数组元素个数
    在C语言中,可以使用sizeof运算符来计算数组元素的个数。具体的使用方式如下所示: #include <stdio.h>...
    99+
    2024-02-29
    c语言
  • C++实现数组中元素组合出最大值
    目录数组中元素组合出最大值如题:这可以算是一个算法类数组或vector求最大值最小值1.求数组的最大值或最小值2.求数组最大值最小值对应的下标数组中元素组合出最大值 如题:这可以算...
    99+
    2024-04-02
  • c语言怎么求两个数的最大公约数
    可以使用辗转相除法来求两个数的最大公约数。算法如下:1. 将两个数中较大的数赋给变量a,较小的数赋给变量b。2. 计算a除以b的余数...
    99+
    2023-08-12
    c语言
  • 怎么在C语言中使用pow()函数求x的y次方值
    这篇文章给大家介绍怎么在C语言中使用pow()函数求x的y次方值,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。C语言 pow() 函数用来求 x 的 y 次方的值。头文件:math.h语法/原型:double ...
    99+
    2023-06-08
  • c语言中如何给数组赋值
    在C语言中,可以使用循环结构来给数组赋值。以下是两种常见的方式:1. 逐个赋值:通过循环遍历数组的每个元素,并逐个给它们赋值。```...
    99+
    2023-09-26
    c语言
  • 用C语言编程实现最大公约数求解
    标题:用C语言编程实现最大公约数求解 最大公约数(Greatest Common Divisor,简称GCD)是指能够同时整除两个或多个整数的最大正整数。求解最大公约数对于一些算法和问...
    99+
    2024-02-22
    c语言 最大公约数 求解 c语言编程
  • c语言怎么求一个区间中素数个数
    要求一个区间中素数的个数,可以使用以下的方法:1. 编写一个函数`isPrime()`来判断一个数是否为素数。该函数接受一个参数n,...
    99+
    2023-10-12
    c语言
  • C语言中如何求大数的阶乘
    这篇“C语言中如何求大数的阶乘”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C语言中如何求大数的阶乘”文章吧。首先定义一个函...
    99+
    2023-06-16
  • c语言怎么求素数的个数
    以下是求解素数个数的C语言代码:```c#include #include int isPrime(int num) {if (nu...
    99+
    2023-08-08
    c语言
  • php中怎么求数组最大值
    这篇文章主要介绍了php中怎么求数组最大值的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇php中怎么求数组最大值文章都会有所收获,下面我们一起来看看吧。php中求数组最大值的函数是“max()”。max()函数...
    99+
    2023-07-02
  • c语言怎么找出十个数的最大值
    可以定义一个变量来保存最大值,然后遍历这十个数,比较每个数和当前最大值,如果当前数大于最大值,则更新最大值。下面是一个示例代码:``...
    99+
    2023-08-09
    c语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作