当前位置:首页 » 编程语言 » c语言中第二大数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言中第二大数

发布时间: 2022-12-23 10:25:34

c语言中如何编写这个程序:输出四个整数中第二大的数

#include<stdio.h>

#define max(x,y) x>y?x:y//比较大小函数

int main()

{

int a[5];

int max1=0;

int max2=0;

for(int i=0;i<4;i++)

{

scanf("%d",&a[i]);

max1=max(max1,a[i]); //记录最大值

}

for(int i=0;i<4;i++)

{

if(a[i]!=max1)//记录除最大值以外的 最大值(第二大数)

max2=max(max2,a[i]);

}

printf("%d",max2);

return 0;

}

② C语言 求数组中第二大的数

你应该将数字从大到小排序,再取数组的第二个元素就为第二大值

③ c语言求一组整数中第2大的数

你真的很好学
void main(void)

{
int n,i,buff[100];
int max=buff[0],second=buff[0];

scanf("%d",&n);
printf("输入的数为:%d",n);
srand(n);//初始化种子
for(i=0;i<n;i++)
{
buff[i] = ((int)rand()%n);//产生随机数
}

for(i=0;i<n;i++)//寻找最大的
{
if(buff[i]>max)
{
max = buff[i];
}
}
for(i=0;i<n;i++)//寻找第二大的
{
if(buff[i] != max)
{
if(buff[i]>second)
{
second= buff[i];
}
}
}
printf("第二大的是:%d",second);
}

④ c语言 输入五个不同数,找出第二大的数 在线= 谢谢

我只写查找过程,如下:
#include
int
main(){
int
data[5];
//
是你输入的五个数
int
i;
printf("
请输入5
个不相等的数:\n");
for(i
=
0;
i
<
5;
i++){
scanf("%d",&data[i]);
}
int
sum
=
0;
//
第二大数
int
max
=
0;
//
最大的数
for(i
=
0;
i<
5;
i++){
if(data[i]
>
max){
max
=
data[i];
}else
if(data[i]
>
sum){
sum
=
data[i];
}
}
printf("第二大数是:%d\n",sum);
}

⑤ c语言编程找 第二个大的数 怎么弄

呵呵。这是一个很经典的算法。你网络一下找第K小或者第K大的数。去看看。
我分析下思路:
2轮冒泡,可以找出第二大数。
2轮循环。也可以找出第二大的。

你要到公司面试,要讲效率的话。可以看看我写的下面这个代码
这是用快速排序,夹逼原则来锁定要找的第K大的元素

void swape(int *p1,int *p2)
{
int temp;
temp=*p1;
*p1=*p2;
*p2=temp;
}
int searchPosition(int a[10],int start,int end)
{
int pivot=a[start];
while(start<end)
{
while(start<end&&a[end]>=pivot)
end--;
if(start!=end)
{
swape(&a[start],&a[end]);
start++;
}
while(start<end&&a[start]<=pivot)
start++;
if(start!=end)
{
swape(&a[start],&a[end]);
end--;
}
}
return start;
}
int sloving(int a[10],int m)
{
int part=searchPosition(a,0,9);
while(m!=part+1)
{
if(m<part+1)
part=searchPosition(a,0,part);
else
part=searchPosition(a,part+1,9);
}
return part;
}

Dev-C++ 测试通的!
MIT算法导论书上专门有讨论的。好像是……&

⑥ C语言:键入正整数n,再输入n个整数,输出其中第二大的数,C语言咋编程

代码文本:

#include "stdio.h"

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

int n,t1,t2,i,t;

printf("Enter n(int n>1)... n=");

if(scanf("%d",&n)==1 && n>1){

scanf("%d%d",&t1,&t2);

if(t1>t2)

t=t1,t1=t2,t2=t;

for(i=2;i<n;i++){

scanf("%d",&t);

if(t>t2)

t1=t2,t2=t;

}

printf("The second large number is %d ",t1);

}

else

printf("Input error, exit... ");

return 0;

}

⑦ c语言:输入4个数求里面第二大的数(求教自己想了很久没想通小白一个)

intmain(void){
intnum[4];//声明一个数组,保存4个元素
inti=0,j=0;
for(;i<4;++i){
scanf("%d",&num[i]);
for(j=i;j>0;--j){//这里读入了一个数据,进行插入排序;判断读入的数据如果比之前的大,则移动到数组前面
if(num[j]>num[j-1]){
inttmp=num[j-1];
num[j-1]=num[j];
num[j]=tmp;
}else{
break;
}
}
}
printf("%d ",num[1]);
return0;
}

⑧ c语言如何求第二大的数

#include <stdio.h>

void main()

{

int n,i,max,max2,a[1000];

printf("输入数据,以负数结束: ");

for(n=0;1;n++)

{

scanf("%d",&a[n]);

if(a[n++]<0)break;

}

max=max2=a[0];

for(i=1;i<n;i++)

if(a[i]>max){max2=max; max=a[i];}

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

printf("第二大的数是 %d ",max2);

getch();

return 0;

}

⑨ C语言 求第2大整数

测试通过的:
输入数组元素的个数(<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=0;i<num;i++)
{scanf("%d",&array[i]);}
max=array[0];
secmax=array[0];
for(i=0;i<num;i++)
{
if(array[i]>max)
{
secmax=max;//原最大值赋予第二大值
max=array[i];//更新最大值
}
}
printf("第二大的数是:%d\n",
secmax);
}