C语言 求第2大整数

C语言 求第2大整数,第1张

测试通过的:

输入数组元素的个数(<100):6

输入数组元素:12

35

45

12

46

65

第二大数是:46

算法是:

逐个扫描,与最大值比较(最大值初值为第一个元素),若数组元素比最大值还大,则将最大值赋给第二大值,数组元素取代最大值。

然后输出第二大值。希望对你有所帮助。

#include

"stdio.h"

void

main()

{

int

array[100]

int

i,num

int

max,secmax

printf("输入数组元素的个数(<100):")

scanf("%d",&num)

printf("输入数组元素:")

for(i=0i<numi++)

{scanf("%d",&array[i])}

max=array[0]

secmax=array[0]

for(i=0i<numi++)

{

if(array[i]>max)

{

secmax=max//原最大值赋予第二大值

max=array[i]//更新最大值

}

}

printf("第二大的数是:%d\n",

secmax)

}

#include<stdio.h>

long get(long *p,long n)

{

long i,k,temp,b[100]

for(i=0i<ni++) //重写数组b[100]

b[i]=*(p+i)

for(k=0k<n-1k++) //冒泡排序

for(i=0i<n-1i++){

if(b[i]<=b[i+1]){

temp=b[i]

b[i]=b[i+1]

b[i+1]=temp

}

}

return b[1]

}

int main(void)

{

long a[100],i,n,max2

scanf("%ld",&n)

for(i=0i<ni++)

scanf("%ld",&a[i])

max2=get(a,n) //改了

printf("第二大数为%ld\n",max2)

getch()

return 0

}

本题时间、空间效率都太低。

#include<stdio.h>

int main(void)

{

long a[100],i,n,max,max2

scanf("%ld&ld",&n,&a[0])

max2=max=a[0]

for(i=1i<ni++)

{

scanf("%ld",&a[i])

if(a[i]>max)

{

max2=max

max=a[i]

}

else if(a[i]>max2)max2=a[i]

}

printf("第二大数为%ld\n",max2)

getch()

return 0

}

int main(void) {

  int num[4]// 声明一个数组,保存4个元素

  int i = 0, j = 0

  for ( i < 4 ++i) {

    scanf ("%d", &num[i])

    for (j = i j > 0 --j) { // 这里读入了一个数据,进行插入排序;判断读入的数据如果比之前的大,则移动到数组前面

      if (num[j] > num[j - 1]) {

int tmp = num[j - 1]

num[j - 1] = num[j]

num[j] = tmp

      } else {

 break

      }

    }

  }

  printf ("%d\n", num[1])

  return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9882095.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存