精华内容
下载资源
问答
  • C语言最值问题

    千次阅读 2018-10-31 19:33:31
    求最值问题 1.输入n个整数,求最大值,最小值和平均值 #include<stdio.h> int main() { int i, avg = 0, max = 0, min = 0, n, k; printf("请告诉我需要输入...

    求最值问题

    1.输入n个整数,求最大值,最小值和平均值

    #include<stdio.h>
    
    int main()
    {
            int i, avg = 0, max = 0, min = 0, n, k;
            printf("请告诉我需要输入几个数:");
            scanf("%d",&n);
            printf("开始输入:\n");
            scanf("%d",&k);
            avg = max = min = k;
             for(i = 0; i < n-1; i++)
             {   
                 scanf("%d",&k);
                 if(max < k) max = k;
                 else if(min > k) min = k;
                 avg = k + avg;
            }
            avg = avg / n;
            printf("最大值是%d,最小值%d,平均值是%d\n",max,min,avg);
    }
    

    测试结果:
    1⃣️

    请告诉我需要输入几个数:5
    开始输入:
    3 5 2 5 10
    最大值是10,最小值2,平均值是5

    2.输入n个数,对其中的奇数降序排列,对偶数升序排列。

    展开全文
  • 最值和最值得大小在这里插入代码片 欢迎使用Markdown编辑器 你好! 这## 标题是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的...
    
         求次最值往往针对的是初始值的设定,在这里直接将最值设置为数组的首元素,次最值设置为32位机下最小的元素即(1<<31),这样就不会存在冲突。直接贴代码
    
    **主函数:**
    
    int main(void)
    {
        int arr[10] ;
        srand(time(NULL));
        for(int i = 0;i<10;i++)
        {
            arr[i] = rand()%100;
        } 
        int len = sizeof(arr)/sizeof(*arr);
        printf_func(arr,len);  //打印数据
        caculateSubmax(arr,len); //计算最值和次最值
        return 0;
    }
    
    下面是计算最值和次最值的大小的函数
    void caculateSubmax(int* p,int len)
    {
        int Max = p[0];
        int Submax = 1<<31;
        
        for(int i =1;i<len;i++)
        {
            if(p[i] > Max)
            {
                //说明这个数还比最大值都大,首先更新次最值,之后更新最大值
                Submax = Max;
                Max = p[i];
            }
            else if(p[i] > Submax && p[i] != Max)
            {
                Submax = p[i];
            }
        } 
        if(Submax == (1<<31)) //说明数组里面的数都是一样的,这时将最值赋给次最值
        {
            Submax = Max;
        }
        printf("Max = %d SubMax = %d\n",Max,Submax);
    }
    
    打印函数
    void printf_func(int* p,int len)
    {
        for(int i =0;i<len;i++)
        {
            printf("%d ",p[i]);
        }
        printf("\n");
    }
    
    下面这个方法也是很多博客里面出现的,我贴出来,但是我想了一下,这种计算方法存在不足。先贴代码。
    void caculateSubmax(int* p,int len)
    {
        int Max ;
        int Submax; 
        //从p[0]和p[1]中选出较大的元素赋值给Max,较小的元素赋给Submax,之后从下标为2开始比较
        p[0] > p[1] ? (Max = p[0],Submax = p[1]) :  (Max = p[1],Submax = p[0]);
    
        for(int i =2;i<len;i++)
        {
            if(p[i] > Max)
            {
                //说明这个数还比最大值都大,首先更新次最值,之后更新最大值
                Submax = Max;
                Max = p[i];
            }
            else if(p[i] > Submax && p[i] != Max)
            {
                //说明这个数只是比次最值大,比最大值小,所以只更新次最值,但是这个值不能和最大值相同,所以后面是与
                Submax = p[i];
            }
        }
    
        printf("Max = %d SubMax = %d\n",Max,Submax);
    }
    
    这种方法不好的一点在于万一p[0] = p[1]呢,这样岂不是次最值一直得不到更新,最后计算出来的肯定就错了,所以我们改进了代码,将次最值就等于(1<<31)这样就是最小值了,32位机下面没有比这个最小的了,只要有一个比他大就都能更新。其他的注释已经很明白了。下面这样的数组求次最值就会出现问题。
    int main(void)
    {
        int arr[10]  = {97,97,23,45,44,66,21,23,12,21};
    //    srand(time(NULL));
    //    for(int i = 0;i<10;i++)
    //    {
    //        arr[i] = rand()%100;
    //    }
        int len = sizeof(arr)/sizeof(*arr);
        printf_func(arr,len);  //打印数据
        caculateSubmax(arr,len); //计算最值和次最值
        return 0;
    }
    
    展开全文
  • C语言二维数组求最值

    2021-04-02 11:44:53
    C语言二维数组求最值 问题描述:求下图数组的最大值和最小值。 算法描述: 先构建一个二维数组,利用两层for循环嵌套 依次遍历整个数组。 include(stdio.h) void main() {int a[3][3]={4,2,34,7,3,12,5,6,5},i,j,...

    C语言二维数组求最值

    问题描述:求下图数组的最大值和最小值。

    在这里插入图片描述
    算法描述: 先构建一个二维数组,利用两层for循环嵌套 依次遍历整个数组。

    include<stdio.h>
    void main()
        {int a[3][3]={4,2,34,7,3,12,5,6,5},i,j,min,max;
        min=a[0][0];
        max=a[2][2];
        for(i=0;i<3;i++)//双层for循环遍历整个数组
           for(j=0;j<3;j++)
           if(a[i][j]<min)
           {min=a[i][j];}
        for(i=2;i>=0;i--)//双层for循环倒序遍历数组
           for(j=2;j>=0;j--)
           if(max<a[i][j])
           {max=a[i][j];}
           printf("Min=%d Max=%d",min,max);
        }
    

    结果显示:
    在这里插入图片描述

    展开全文
  • C语言 OJ 5个数求最值

    千次阅读 2018-02-07 10:18:49
    问题 G: 5个数求最值 时间限制: 1 Sec 内存限制: 128 MB 提交: 189 解决: 148 [提交][状态][讨论版][命题人:uzzoj] 题目描述 设计一个从5个整数中取最小数和最大数的程序 输入 输入只有一组...

    问题 G: 5个数求最值

    时间限制: 1 Sec  内存限制: 128 MB
    提交: 189  解决: 148
    [提交][状态][讨论版][命题人:uzzoj]

    题目描述

    设计一个从5个整数中取最小数和最大数的程序

    输入

    输入只有一组测试数据,为五个不大于1万的正整数

    输出

    输出两个数,第一个为这五个数中的最小值,第二个为这五个数中的最大值,两个数字以空格格开。

    样例输入

    1 2 3 4 5

    样例输出

    1 5

    #include <stdio.h>


    int main()
    {
        int a[5],i,max,min;
        for(i=0;i<5;i++)
        {
            scanf("%d",&a[i]);
        }
        max=a[0];
        min=a[0];
        for(i=1;i<5;i++)
        {
            if(max<a[i])
            {
                max=a[i];
            }
            if(min>a[i])
            {
                min=a[i];
            }
        }
        printf("%d %d",min,max);
        return 0;
    }

    展开全文
  • C语言实现(5个数求最值

    千次阅读 2020-05-17 16:04:44
    5个数求最值 设计一个从5个整数中取最小数和最大数的程序 //5个数求最值 //设计一个从5个整数中取最小数和最大数的程序 //本练习不涉及报错处理机制! #include<stdio.h> int main() { printf("请输入5...
  • /*最大值 */ #include<stdio.h> void main() { int x,y,z,max; printf("请输入三个整数x,y,z:\n"); scanf("%d%d%d",&x,&y,&z); max=x>y?x:y; //三目运算比较x,y的大小并将大的赋予max ...
  • 蚁群算法代码(函数最值).docfunction [F]=F(x1,x2) %目标函数F=-(x1.^2+2*x2.^2-0.3*cos(3*pi*x1)-0.4*cos(4*pi*x2)+0.7);Endfunction [maxx,maxy,maxvalue]=antcolony% 蚁群算法函数最大值的程序ant=200; % ...
  • 5个数求最值

    2015-01-05 22:53:00
    5个数求最值 时间限制:1000ms | 内存限制:65535KB 难度:1 描述设计一个从5个整数中取最小数和最大数的程序 输入输入只有一组测试数据,为五个不大于1万的正整数输出输出两个数,第一个为这五个数中的...
  • 求最值的程序贴上,慢慢积累。向大牛们学习! /求最大值,返回下标max_num unsigned long buf[10] =[10, 0, 1, 2, 3, 4 , 5, 7, 9, 0]; unsigned char find_max_num(unsigned long *buf , int num) { unsigned char...
  • NYOJ 31 5个数求最值

    2015-07-06 09:24:31
    5个数求最值 时间限制:1000 ms | 内存限制:65535 KB 难度:1 描述 设计一个从5个整数中取最小数和最大数的程序 输入输入只有一组测试数据,为五个不大于1万的正整数输出输出两个数,第一个为这五个数中的最小值...
  • 该程序实现了用遗传算法y=x*sin(10*PI*x)+2.0的最大值,若需求其他函数最值,稍作修改即可。
  • NYOJ:5个数求最值

    2018-02-11 13:53:04
    C语言代码:#include&lt;stdio.h&gt;int main(){ int x[5],i,j; int max,min; for(i=0;i&lt;5;i++) scanf("%d",&amp;x[i]); max=x[0]; min=x[0]; for(j=0;j&lt;5;j++) { if...
  • ACM(031)五个数求最值(1)

    千次阅读 2014-01-07 11:39:02
    5个数求最值 时间限制:1000 ms | 内存限制:65535 KB 难度:1 描述 设计一个从5个整数中取最小数和最大数的程序 输入 输入只有一组测试数据,为五个不大于1万的正整数 输出 输出两个数,第一个为这...
  • 5个数求最值 时间限制:1000 ms | 内存限制:65535 KB 难度:1 描述设计一个从5个整数中取最小数和最大数的程序 输入输入只有一组测试数据,为五个不大于1万的正整数 输出输出两个数,第一个...
  • –打个比方——将一个铁块加热至熔融态,并以此为最初状态,在此基础上不断降温,最终凝固,原子不再活跃。 –实现原理——刚开始的元素极为活跃,若是随机取到的值比原来的值更优,那么就放进一个临时的变量中,...
  • #include<stdio.h> int max(int x,int y) { int z; //if (x>y) z=x; //else z=y; x>y?(z=x):(z=y); return (z); } int min(int x,int y) { int z; //if (x<y) z=x; //else z=y;...int ...
  • 最值问题--C语言

    2020-07-15 11:14:23
    求最值问题–C语言 1、以3个数为例,求3个整数中的最大数。 #include<stdio.h> int main() { int max();//声明max函数 extern int A,B,C;//把外部变量的作用域扩展到此处开始 printf("Please enter 3 ...
  • 对于线段树的讲解此篇不再赘述,下面列...=EOF,线段树的题肯定要用c语言的输入输出,要使用字符数组,不用字符串,输入字符的时候要加getchar()吞噬空行.. (1)单点增减,区间求和: #include #include #include #

空空如也

空空如也

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

c语言求最值

c语言 订阅