C 在N个元素中找到两个最大的数字

C 在N个元素中找到两个最大的数字,c,arrays,numbers,C,Arrays,Numbers,我有作业,你必须找到n个元素中最大的两个数字(元素的数量是‘a’),但我似乎找不到第二大数字。你能帮帮我吗?谢谢 #include<stdio.h> int main() { int a, c, i; int b; b=0; c=0; scanf(" %d",&a); for(i=2;i<=a;i++) //find the biggest number { scanf("%d",&c); if(b<c) b=c; } if (a &g

我有作业,你必须找到n个元素中最大的两个数字(元素的数量是‘a’),但我似乎找不到第二大数字。你能帮帮我吗?谢谢

#include<stdio.h>

int main()
{
int a, c, i; 
int b; 
b=0;
c=0;

scanf(" %d",&a);
for(i=2;i<=a;i++) //find the biggest number
{
scanf("%d",&c);

if(b<c)
b=c;     
}
if (a > c) //Here I cant find my second biggest number
c = a;
printf("%d %d", b, c);      
return 0;
}
#包括
int main()
{
int a,c,i;
int b;
b=0;
c=0;
scanf(“%d”和“&a”);

对于(i=2;i,这里有一个小程序,可以找到数组中的最大值和第二大值

从中获取的相关位是,它一次扫描一个元素数组,并将其与其当前的“最大值”进行比较。如果数组中的值较大,则将其存储为新的最大值。在存储之前,它将旧的最大值复制为新的“第二大值”


[编辑:我更新了算法以处理永远不会设置第二大值的情况。例如,使用输入集{2,1}。此外,我还更新了算法以处理负数。]

#include <stdio.h>
#include <limits.h>

int myArray [] = {2,5,9,1,7,13,3,11};

#define NumElements( array ) sizeof(array)/sizeof(array[0])

int main(int argc, const char * argv[])
{

    int i;
    int largest = INT_MIN;
    int secondLargest = INT_MIN;

    for( i=0; i<NumElements(myArray); i++ )
    {
        if( myArray[i] > largest )
        {
            secondLargest = largest;
            largest = myArray[i];
        }
        else if( myArray[i] > secondLargest )
        {
            secondLargest = myArray[i];
        }
    }

    printf( "largest: %d\n", largest );
    printf( "second largest: %d\n", secondLargest );

    return 0;
}
#包括
#包括
int myArray[]={2,5,9,1,7,13,3,11};
#定义NumElements(数组)sizeof(数组)/sizeof(数组[0])
int main(int argc,const char*argv[]
{
int i;
int最大=int_最小;
int secondmaxist=int_MIN;
对于(i=0;i最大)
{
第二大=最大;
最大=myArray[i];
}
else if(myArray[i]>第二大)
{
第二大=myArray[i];
}
}
printf(“最大:%d\n”,最大);
printf(“第二大:%d\n”,第二大);
返回0;
}

这应该是“通过认真思考解决问题”的例子不,让我们来处理我注意力不足的问题吧。给你的变量起个描述性的名字,这样你就不会得到像
a>c
这样愚蠢的事情。我已经更新了算法,以处理永远不会设置第二大值的情况。例如,输入集为{2,1}。此外,我还更新了它以处理负数。更好。一个次要的想法是:首先对
第二个最大的
进行测试有一个优点,通常每次通过循环,只需要一个测试。你能改变它让程序检测n个元素中最大的两个数字吗?就像你可以输入你想要的任何7个数字一样