精华内容
下载资源
问答
  • #include<stdio.h> //改数组大小只需要修改 N后面的数字 #define N 5 int main(void) { int arr[N]={5,6,8,3,9}... //定义最大值并赋值 ... //定义次大值并赋值 for(int i = 0;i<N;i...
    
     
        #include<stdio.h>
        //改数组大小只需要修改 N后面的数字
        #define N 5
    
    
    	int main(void)
        {
    
    	int arr[N]={5,6,8,3,9};
    		
    	int max= 0;  //定义最大值并赋值
    	int mid= 0;  //定义次大值并赋值
    	for(int i = 0;i<N;i++){
    	    /*因为arr[i]是固定的 ,所以可以用arr[i]先和max比较,如果大于max 则
    		把max的值赋给mid的值,然后把arr[i]赋给max  这样max肯定比mid大*/	
    	    if(arr[i]>max)
            {
    	        mid = max;
    	        max =arr[i];
    	    }else if(arr[i]>mid)
            {
                /*  另一种情况 arr[i]处于两者之间*/
    	    	mid = arr[i];//  则吧arr[i]赋给mid
    	    }
    	}
    	printf("max=%d,mid=%d\n",max,mid);
    	return 0;
    	}
    

     

     

     

    展开全文
  • ** ## 次最值 ** #include <... //定义次大值 for(int i = 0;i<5;i++){ //因为arr[i]是固定的 ,所以可以用arr[i]先max比较,如果大于max 则把max的值赋给mid的值,然后把arr[i]赋给max
    **
    
    ## 求次最值
    
    **
    
    #include <stdio.h>
    int main()
    {
        int arr[5]={5,6,3,4,9};
        int max= arr[0];  //定义最大值
        int mid= arr[0];  //定义次大值
        for(int i = 0;i<5;i++){
            //因为arr[i]是固定的 ,所以可以用arr[i]先和max比较,如果大于max 则把max的值赋给mid的值,然后把arr[i]赋给max  
            //这样max肯定比mid大
            if(arr[i]>max)
            {
                mid = max;
                max =arr[i];
            }
            else if(arr[i]>mid&&arr[i]<max)
            {
                //另一种情况 arr[i]在两者之间*/
                mid = arr[i];
                // 把arr[i]赋给mid
            }
        }
        printf("max=%d,mid=%d\n",max,mid);
        return 0;
    }
    **
    
    ## 求最大值
    
    **
    int main2()
    {
        int maxValue;
        int minValue;
        int arr[10]={-1,6,8,2,0,1,3,5,7,9};
        maxValue=arr[0];
        minValue=arr[0];
        for(int i=1;i<10;i++)
        {
            if(arr[i]>maxValue)
                maxValue=arr[i];
            if(arr[i]<minValue)
                minValue=arr[i];
        }
        printf("maxValue =%d\n",maxValue);
        printf("maxValue =%d\n",minValue);
        return 0;
    }
    
    
    展开全文
  • 刚刚做的一个笔试题,记录一下 题目描述:一个n*m的矩阵,其中不同行并且不同列的两个数...在仔细读题,可以发现我们可以将每行最大值和次大值保存下来,最大值一定是由某行的最大值或次大值乘以另一行最大值或次..

    刚刚做的一个笔试题,记录一下

     题目描述:一个n*m的矩阵,求其中不同行并且不同列的两个数的最大乘积。2=<n,m<=1000.

    如矩阵:

    1 2 8

    4 3 6

    5 4 1

    输入:第一行输入矩阵的行数n和列数 m

    在输入n行,每行m个元素

    输出:该数组不同行不同列两个数的最大乘积

    思路:一开始拿到题我想到的是用两个二维数组进行两两相乘,后来发现时间复杂度太高了。在仔细读题,可以发现我们可以将每行最大值和次大值保存下来,最大值一定是由某行的最大值或次大值乘以另一行最大值或次大值。

    对第i行和第j行来说;

    如果两者最大值maxi和maxj对应的列下标不相同,则max=maxi*maxj

    如果两者最大值maxi和maxj对应的列下标相同,则max=maxi*secMaxj  或者max=secMaxi*maxj

    #include<stdio.h>
    int max(int a, int b)
    {
        int max = a;
        if (b > max)
            max = b;
        return max;
    }
    int main()
    {
    
        int n, m, arr[1000][1000];
        while (scanf("%d %d", &n, &m) != EOF)
        {
            int M[1000] = { 0 };
            int col[1000];
            int sec[1000];
            for (int i = 0; i < n; i++)
                for (int j = 0; j < m; j++)
                {
                    scanf("%d", &arr[i][j]);
                    if (arr[i][j] > M[i])
                    {
                        sec[i] = M[i];//更新次大值
                        M[i] = arr[i][j];//更新最大值
                        col[i] = j;
                    }
                    else if (arr[i][j] > sec[i])
                    {
                        sec[i] = arr[i][j];//比最大值小但比次大值大,更新次大值
                    }
                }
            int val = 1;
            for(int i=0;i<n;i++)
                for (int j = i + 1; j <= n; j++)
                {
                    if (col[i] != col[j])//第i行最大值对应的列不等于第j行最大值对应的列
                        val = max(val, M[i] * M[j]);
                    else
                    {
                        val = max(val, M[i] * sec[j]);
                        val = max(val, M[j] * sec[i]);
                    }
    
                }
            printf("%d\n", val);
        }
    
    
    }

     

    展开全文
  • 3.找出主对角线上最大及其位置 主对角线是什么: 在一个n阶方阵(或是n阶行列式)中,从左上角到右下角这一斜线上的n 个元素的位置,叫做n 阶方阵(或行列式)的主对角线 辅对角线是什么: 就是和主对角线相对应...

    C语言 输入一个5行5列的数组。1.求数组主对角线上元素的和。2.求出辅对角线上元素的积。3.找出主对角线上最大的值及其位置

    主对角线是什么:

    在一个n阶方阵(或是n阶行列式)中,从左上角到右下角这一斜线上的n 个元素的位置,叫做n 阶方阵(或行列式)的主对角线

    辅对角线是什么:

    就是和主对角线相对应的对角线,从矩阵的右上角到左下角,也叫次对角线

    代码:

    #include <stdio.h>
    void main(){
    int num[5][5];
    int i,j;
    printf(“请输入一组5 * 5的数列:\n”);
    for(i=0;i<5;i++)//输出5 * 5的数组
    for(j=0;j<5;j++)
    scanf("%d",&num[i][j]);

    int s=0;
    for(i=0;i<5;i++)//求主对角线上元素的和
    for(j=0;j<5;j++)
    if(i==j)
    s=s+num[i][j];
    printf(“主对角线上元素的和为:%d\n”,s);

    int m=1;
    for(i=0;i<5;i++)//求辅对角线上元素的积
    for(j=0;j<5;j++)
    if(i+j==4)
    m=m*num[i][j];
    printf(“辅对角线上元素的积为:%d\n”,m);

    int max=num[0][0];
    for(i=0;i<5;i++)//求出主对角线最大的值
    for(j=0;j<5;j++)
    if(i==j&&num[i][j]>max)
    max=num[i][j];
    printf(“主对角线上最大的值为:%d\n”,max);

    for(i=0;i<5;i++)//求出主对角线最大的值的位置
    for(j=0;j<5;j++)
    if(i==j)
    if(num[i][j]==max){
    printf(“其位置为%d行,%d列\n”,i+1,j+1);
    break;}
    }

    运行结果:

    在这里插入图片描述

    展开全文
  • //被除数每做一除法运算,减少1,直到两个运算的余数都为0,则该被除数为这两个数的最大公约数。 //代码 #include int main() { int i; int a = 20, b = 12; if (a { a ^= b; b ^= a; a
  • 50052 使用函数找最大值 49 50062 使用函数输出指定范围内的 Fibonacci 数 50 50063 使用函数找出指定范围内的完数 51 第8周(M8) 52 40013 奇数 52 40062 x+x*x/2!+x*x*x/3!+x*x*x*x/4!+……的值 53 ...
  • 一个矩阵元素的“鞍点”是指该位置上的元素在该行上最大、在该列上最小。 本题要求编写程序,一个给定的n阶方阵的鞍点。 利用双重for循环,分别比较各列元素各行元素即可。 12-4字符串小写字母转换 本题...
  • C语言的科学艺术.pdf

    热门讨论 2012-01-19 14:09:05
    本资源包含《C语言的科学艺术(英文版)》.pdfC语言的科学艺术(中文版)》.pdf两本书,有兴趣的朋友可以进行对照阅读。 《C语言的科学艺术》,原名《The Art and Science of C: A Library-Based Introduction...
  • 本关任务:输入 n(10≤ n ≤10000) k(1≤ k ≤10), n 以内最大的 k 个素数,按降序排列并将输出在最后。 本关需要用到循环控制结构来解决。素数范围是 2 到 n,因为要从到小输出素数,所以可以从 n ...
  • 70014 求最大值及其下标 7 70015 交换最小值最大值 8 70016 选择法排序 9 70017 在数组中查找指定的元素 10 70021 求矩阵各行元素之 11 70022 矩阵运算 12 70023 九九乘法表 13 夏2周 14 70024 判断上三角矩阵 ...
  • *创建一个保存每一行的最小权值顶点的结构体数组 *进行 每一的数组更新 *最后直到生成一个无向网的最小生成树 * */ #include<stdio.h> #include<stdlib.h> #include<string.h> #define MAX_...
  • C语言资料与答案

    2013-01-03 20:41:45
    C语言资料 两个变量交换,素数判断,计算分段函数值,数列或级数的,求解二方程,字母小写转换,数组最大值、最小值、平均值计算,数组排序,矩阵转置,数组逆序排列,矩形法梯形法计算定积分,最小公倍数...
  • c语言经典案例

    2014-10-30 08:06:57
    最大值和最小值 240 实例170 使用指针的指针输出字符串 241 实例171 使用指向指针的指针对 字符串排序 242 实例172 使用返回指针的函数查找 最大值 244 实例173 使用指针连接两个字符串 245 实例174 用指针实现逆序...
  • C语言实现分治法

    千次阅读 2018-09-22 23:14:10
    maxSum_1:用数组的方式实现三遍历,出所有子序列的和值,并且比较大小,最大子序列 maxSum_2:用另一个数组来存储从下标0开始的所有和值,然后操作此序列,用减的方式,来算出所有和值,并且比较大小...
  • c语言经典例题

    千次阅读 2020-02-17 16:30:34
    阅读目录: 1、计算 int, float, ...6、一元二方程:ax2+bx+c=0 的根。输入三个实数a, b, c的,且a不等于0 7、用户输入年份,判断该年份是否为闰年。 8、forwhile计算自然数的 9、输出9x9乘法表 10、...
  • 问题描述:给定整数k1,k2,k3,...,kn,从第i个数到第j个数的最大值。(如果所有整数均为负数,那么最大子序列规定为0) 根据题目描述,最直接的算法就是穷举所有的从i到j的,比较它们的大小,留下最大的那个...
  • 5. 按由大到小的顺序对一个含有N个整型数据的数组A[N]进行排序,利用如下改进的选择排序方法:第一次选出最大者存入A[1],第二次选出最小者存入A[N],第三次选出次大者存入A[2],第四次选出次小者存入A[N-1],如此大小...
  • 计算 i 的新值时,直接加一,计算 j 的新值时,将 i 数值对应的数组字节值和密钥字节值相加得到。要得到密文 ciphertext,将明文和 i j 求和后指示的字节相异或 XOR,加密 encrypt 和解密 decrypt 的过程一样。然后...
  •  应特别注意的是,无论是从左至右求值, 还是自右至左求值,其输出顺序都是不变的, 即输出顺序总是实参表中实参的顺序相同。由于Turbo C现定是自右至左求值,所以结果为8,7,7,8。上述问题如还不理解,上机一...
  • 算法-数塔问题-c语言

    千次阅读 多人点赞 2020-12-02 17:17:02
    从顶点出发时到底向左走还是向右走应取决于是从左走能取到最大值还是从右走能取到最大值,只要左右两道路径上的最大值求出来了才能作出决策。同样的道理下一层的走向又要取决于再下一层上的最大值是否已经出才能...
  • c语言之重点(一)c语言一、闰年二、素数三、最大公约数四、一元二方程五、存款利息六、小写字母转换七、三角形面积八、录入字符串并打印输出九、三个数排序十、小写字母转换十一、switch的key可以使用...
  • C语言实例解析精粹 PDF

    热门讨论 2010-08-17 00:20:25
    实例94 π的近似 实例95 奇数平方的有趣性质 实例96 角谷猜想 实例97 四方定理 实例98 卡布列克常数 实例99 尼科彻斯定理 实例100 扑克牌自动发牌 实例101 常胜将军 实例102 搬山游戏 实例103 兔子产子 实例104 ...
  • 你必须知道的495个C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    3.7 是否可以安全地认为,一旦&&||左边的表达式已经决定了整个表达式的结果,则右边的表达式不会被求值? 3.8 为什么表达式printf("%d%d",f1(),f2());先调用了f2?我觉得逗号表达式应该确保从左到右的求值顺序...
  • 第九章第二作业 第九章:三四 上机作业:要求用下标法和指针法 1输入10个数将它们按由到小的顺序输出 2编写a数组n个元素中的数值最大和最小的函数要求用指针 并一维数组10个数中最大值和最小值 3将给定的一维...
  • c语言编写单片机技巧

    2009-04-19 12:15:17
    我是一名武汉大学电子科技3的学生,学了电子线路、数字逻辑、汇编接口、C语言,但是总是感觉很迷茫,觉好象什么都不会。怎么办? 答:大学过程是一个理论过程,实践的机会比较少,往往会造成理论与实践相...

空空如也

空空如也

1 2 3 4 5
收藏数 85
精华内容 34
关键字:

c语言求最大值和次大值

c语言 订阅