① 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演算法導論書上專門有討論的。好像是……&