① 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);
}
② 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语言:键入正整数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语言 输入五个不同数,找出第二大的数 在线= 谢谢
我只写查找过程,如下:
#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算法导论书上专门有讨论的。好像是……&