精华内容
下载资源
问答
  • #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;
    	}
    

     

     

     

    展开全文
  • 压缩吧中包含现代设计中函数单峰区间的求解代码,黄金分割法的代码和二插值的代码,比较全面。
  • 思路:首先输入十个数,把其中两个数赋给最小值(min)和次小值(min_next),最小值一定小于次小值,如果不小于,将两个数值交换,然后用再比较这两个数和其他八个数(input)一个一个的比较大小,会有两种情况: ...

    用C语言求十个数中的最小数和次小数

    要求十个数中最小值和次小数值,在编写代码之前,我们要搞明白解决整个问题的思路是什么,然后再去编写代码。
    思路:首先输入十个数,把其中两个数赋给最小值(min)和次小值(min_next),最小值一定小于次小值,如果不小于,将两个数值交换,然后用再比较这两个数和其他八个数(input)一个一个的比较大小,会有两种情况:
    1.input<min
    min_next=min;
    min=input;
    2.intput>min && input<min_next
    min_next=input;

    代码的实现:

    #define _CRT_SECURE_NO_WARNINGS 1
    #include<stdio.h>
    #include<stdlib.h>
    int main()
    {
    	int input=0;
    	int i = 0;
    	int min = 0;
    	int min_next = 0;
    	scanf("%d %d", &min,&min_next);
    	if (min > min_next)
    	{
    		min = min ^ min_next;
    		min_next = min ^ min_next;
    		min = min ^ min_next;
    	}
    	for (i = 0; i < 8; i++)
    	{
    		scanf("%d", &input);
    		if (input < min)
    		{
    			//先把最小值赋给次小值
    			//再把输入的值赋给最小值
    			//这两个赋值式顺序不能调换
    			min_next = min;
    			min = input;
    		}
    		else
    			//不能写数学式min<input<min_next
    		if ( (input>min) && (input < min_next))
    		{
    			min_next = input;
    		}
    	}
    	printf("min=%d min_next=%d\n", min, min_next);
    	system("pause");
    	return 0;
    }
    
    
    展开全文
  • C语言 标准偏差

    万次阅读 2017-10-11 19:55:24
    标准偏差是一种量度数据分布的分散程度之标准,能反映一个数据集的离散程度,标准偏差越,这些偏离平均就标准偏差越少。 例如,A、B两组各有6位学生参加同一语文测验,A组的分数为95、85、75、65、55、45,B...

    百度百科:标注差:点击打开链接

    标准偏差是一种量度数据分布的分散程度之标准,能反映一个数据集的离散程度,标准偏差越小,这些值偏离平均值就标准偏差越少。

    例如,A、B两组各有6位学生参加同一次语文测验,A组的分数为95、85、75、65、55、45,B组的分数为73、72、71、69、68、67。这两组的平均数都是70,但A组的标准差应该是18.708分,B组的标准差应该是2.366分,说明A组学生之间的差距要比B组学生之间的差距大得多。

    公式

    编辑
    样本标准偏差
    代表所采用的样本X1,X2,...,Xn的均值。N表示数的个数
    总体标准偏差
    代表总体X的均值。
    例:有一组数字分别是200、50、100、200,求它们的样本标准偏差。

    N=4
    = (200+50+100+200)/4 = 550/4 = 137.5
    = [(200-137.5)^2+(50-137.5)^2+(100-137.5)^2+(200-137.5)^2]/(4-1)
    样本标准偏差 S = Sqrt(S^2)=75
    /**
    StandardDeviation.c
    标准偏差公式:S = Sqrt( ∑( (xi-x_平均)*xi-x_平均) ) /(N-1)))
    
    公式中∑代表总和,x_平均代表x的均值,^2代表二次方,Sqrt代表平方根.   
    1.计算总和:sum
    2.统计个数:count
    3.计算平均值:avg=sum/count;
    5.平方累加求和sum2=(x1-avg)^2+(x1-avg)^2+...+(xn-avg)^2
    6.累加求和结果除以元素的个数  sum2/count
        样本标准偏差除以个数减一 sum2/(count-1)
    7.总体=sqrt(sum2/count)
        样本=sqrt(sum2/(count-1));
    */
    #include<stdio.h>
    #include<math.h>
    
    int main()
    {
        double array[]={95,85,75,65,55,45};
        int N=sizeof(array)/sizeof(array[0]);//计算元素个数N
        printf("N=%d\n",N);//6
        int i;
        double sum=0;//总和
        double avg;//平均值
        for(i=0;i<N;i++)
        {
            sum+=array[i];//求总和
        }
        avg=sum/N;//计算平均值
        printf("avg=%lf\n",avg);//70,对的
        double temp=0;
        double Spow=0;
        for(i=0;i<N;i++)
        {
            Spow+=(array[i]-avg)*(array[i]-avg);//平方累加
        }
    //    double Stwo=Spow/N;
    //    printf("Stwo=%lf\n",Stwo);
        printf("如果是总体,则标准偏差为:%lf\n",sqrt(Spow/N));
        printf("如果是样本,则标准偏差为:%lf\n",sqrt(Spow/(N-1)));
    
    }
    
    测试:
    N=6
    avg=70.000000
    如果是总体,则标准偏差为:17.078251
    如果是样本,则标准偏差为:18.708287
    


    展开全文
  • C语言 第N大的元素

    2019-01-12 17:18:26
    C语言实现第N大的元素(第N的元素同理) 思路(以全局最大举例): 1. 找到全局最小值 2. 找到全局最大 3. 将全局最大赋值为 全局最小值-1 4. 重复2-3步骤N-1(N为第N大的N) 5. 再次找到最大,此最大...

    C语言实现求第N大的元素(第N小的元素同理)

    思路(以全局最大值举例):

     找到全局最小值
     找到全局最大值
     将全局最大值赋值为 全局最小值-1
     重复2-3步骤N-1次(N为第N大的N)
     再次找到最大值,此最大值即为 第N大元素
    

    目的

     这样写的好处就是时间复杂度低,对于大量的数据,比起先排序再取第N最大值来说效率要高得多
    

    优化

     针对不同的要求以及不同的环境,可以进行不同的优化。
     如:数据都为正数,则可直接将最大值赋值为小于0的任意的你喜欢♥的值。
    
    以下为示例代码:

    比较函数,返回最大值或者最小值的下标:

    int compare(int * arr, int n, int flag) {
    	int m = arr[0], mi = 0;
    	for (size_t i = 0; i < n; i++)/* true为max, false为min */
    		if (flag ? (m < arr[i]) : (m > arr[i])) m = arr[i], mi = i;
    	return mi;
    }
    

    核心赋值代码:

    	int min = arr[compare(arr, ARRN, 0)] - 1; /*找到全局最小值,并令其-1*/
    	for (size_t i = 0; i < maxN - 1; i++) {   /* maxN为第N大的值 */
    		arr[compare(arr, ARRN, 1)] = min;
    	}
    

    总代码:

    #include <stdio.h>
    
    const int ARRN = 10;
    int compare(int * arr, int n, int flag);
    
    int main() {
    	int maxN = 3;   /*第N大*/
    	int arr[ARRN] = { 5,2,0,1,3,1,4,6,7,8 };
    
    	int min = arr[compare(arr, ARRN, 0)] - 1; /*找到全局最小值,并令其-1*/
    	for (size_t i = 0; i < maxN - 1; i++) {   /* maxN为第N大的值 */
    		arr[compare(arr, ARRN, 1)] = min;
    	}
    
    	printf("第%d大的数是%d\n", maxN, arr[compare(arr, ARRN, 1)]);
    	return 0;
    }
    
    int compare(int * arr, int n, int flag) {
    	int m = arr[0], mi = 0;
    	for (size_t i = 0; i < n; i++)/* true为max, false为min */
    		if (flag ? (m < arr[i]) : (m > arr[i])) m = arr[i], mi = i;
    	return mi;
    }
    
    
    展开全文
  • C语言求幂的三种方法

    千次阅读 2021-02-05 16:30:22
    用三种方法 一. 暴力递归 直接对x乘y int result(int x,int y) { int num=1; for (int i=1; i<=y; i++) { num*=x; } return num; } 这种方法有手就行,但是运行时间往往过长 二. 快速幂 主要利用...
  • 递归算法四个数的最大 **问题描述:**通过函数的递归四个数的最大 **解题思路:**通过多比较两个数进行比较大小,本质就是冒泡法排序 即max_4=max_2(num1,max_2(num2,max_2(num3,num4))) 那么可以将4推广...
  • *普里姆算法最小生成树 *创建一个无向网 *创建一个保存每一行的最小权值和顶点的结构体数组 *进行 每一的数组更新 *最后直到生成一个无向网的最小生成树 * */ #include<stdio.h> #include<stdlib.h&...
  • 1.分别出个十百位数字 #include<stdio.h> int main() { int a=456,x,y,z; x=a/100; y=a/10-10*x; //比较难理解 a/10就为非个位数 //非个位数为45,45减去最高位的10倍就是该位 z=a%10; print...
  • 题目来源:大工慕课 链接 作者:Caleb Sung 题目要求 1+1/2+1/4+1/7+1/11+1/16+1/22+…的,直到最后一项的小于10^-5。...为方便理解,我把每一项的都列了出来,项和结果精确到...
  • c语言| |最大公约数

    2018-06-26 21:18:59
    暴力解法思想:两个数的最大公约数一定小于或者等于两者中较小的数,那么就从1开始一直除,除到较小值,得出最大公约数2-辗转相除法思想:用两者中任意一个数,除以另外一个数,得到余数,在用刚才的除数除以余数...
  • C语言第二实验报告

    2019-10-05 12:29:49
    本题要求编写程序,一个给定的n阶方阵的鞍点。 1、设计思路 第一步:定义二维数组 第二步:判断用户给定矩阵大小 第三步:找行最大 第四步:判断行最大是否为列最小值 第五步:输出结果 实验代码 int a[6][6...
  • 一个矩阵元素的“鞍点”是指该位置上的元素在该行上最大、在该列上最小。 本题要求编写程序,一个给定的n阶方阵的鞍点。 利用双重for循环,分别比较各列元素和各行元素即可。 12-4字符串大写字母转换 本题...
  • 一些C语言小程序:输入以秒为单位所表示的时间,试将其换算为几日几时几分几秒;输出a、b两数中的较大;从键盘输入一个字母,若是大写字母则输出对应的小写字母,若是...一元二方程的根,系数a、b、c由键盘输入。
  • 函数的根 # include<stdio.h> # include<math.h> float x1, x2, delta, p, q; void grater_than_zero(float a, float b) { x1 = -b / (2 * a) + sqrt(delta) / (2 * a); x2 = -b / ...
  • 两个数的最大公约数即为可以被两个数整除的最大,所以会有两种情况。 一种是不等于输入的两个。一种是等于两个数中最小的那个。所以代码用到if语句进行第一判断。第二判断则写在for语句中进行递减数循环条件...
  • <p>1.(统计正数和负数的个数,然后计算这些数的平均,*)...重复的数字只显示一)。例如,若输入的整数是120,那么输出就应该是:2,3,5。</p>
  • C语言常见错误结 2008-06-12 10:55:08 C语言的最大特点是:功能强、使用方便灵活。C编译的程序对语法检查并不象其它高级语言那么严格,这就给编程人员留下 “灵活的余地”,但还是由于这个灵活给程序的调试带来...
  • 我用这一段C语言代码做LU分解法,请问当x2为什么等于一个这么的数,而不是直接为0。有什么办法解决么? ``` //作品:多元一方程组的计算 //作者:与你看日出 //日期:2009年4月25日 星期六 //说明:输出...
  • 加权粒子群算法函数极值c语言代码 迭代次数100 种群数量50 经典公式如下 ν_ⅈd^(k+1)=ν_ⅈd^k+c_1 r_1 (pbest_ⅈd^k- x_ⅈd^k )+c_2 r_2 (gbest_ⅈd^k- x_ⅈd^k )                             ...
  • 一元二方程的求解:方程(a*x)^2+b*x+c=0的根,用3个函数分别当b^2-4*a*c大于0、等于0和小于0时的根并输出结果。从主函数输入a、b、c的。 (三)算法设计: int main():在主函数中提示并...
  • 最小二乘法曲线拟合 C语言实现

    万次阅读 2014-04-26 11:55:00
    1,采用目标函数对多项式系数偏导,得到最优条件,组成一个方程组; 2,方程组的解法采用行列式变换(两变换:普通行列式——三角行列式——对角行列式——求解),行列式的求解算法上优化过一了,目前还...
  • 前言:在网上看到不少解一元二方程的程序,在使用时总得出一大堆小数,感觉很不爽,遂自己重新写了一遍。 首先,先回忆一下一元二方程的根公式: 分别读取二项、一项和常数项系数并且出delta ...
  • 数值作业:二分法方程的根之C语言实现代码

    万次阅读 多人点赞 2017-04-19 18:05:36
    二分法是方程近似解的一种简单直观的方法,设函数f(x)在[a,b]上连续,且f(a)*f(b),则表明f(x)在[a,b]上至少有一个零点,这是微积分中的介定理(不得不吐槽一下大学微分方程老师讲课跟个煞笔一样,反正我是重来没...
  • //被除数每做一除法运算,减少1,直到两个运算的余数都为0,则该被除数为这两个数的最大公约数。 //代码 #include int main() { int i; int a = 20, b = 12; if (a { a ^= b; b ^= a; a

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 174
精华内容 69
关键字:

c语言求次小值

c语言 订阅