int max1(int a[5])
{ int max=0,i
max=a[0]
for(i=0i<5i++)
if(max<a[i])
max=a[i]
return max
}
int main()
{ int MAX=0,n=0,i
int a[5]={89,56,45,123,78}
MAX=max1(a)
for(i=0i<5i++)
if(MAX==a[i])
a[i]=0
MAX=max1(a)
printf("次大数为%d\n",MAX)
return 0
}
方法是先求最大数 然后把最大数去掉 再求一次最大数 就出来啦
int i, n, k1, k2, k3, k4,max, pmax, min, pmin,
num[ N ], sub[ N ]
scanf ( "%d\n", &n )
scanf 函数里不要加' \n ' 和别的一些特殊符号,最好什么都别乱加,直接使用%d %f 等一些格式输入符。
# include <stdio.h>
# define N 30
int main ( )
{
int i, n, k1, k2, k3, k4,
max, pmax, min, pmin,
num[ N ], sub[ N ]
printf("输入整数的总个数:")
scanf ( "%d", &n )
for ( i = 0i <ni ++ )
{
printf("输入你喜欢的整数和它的序列号: ")
scanf ( "%d%d",&num[ i ], &sub[ i ] )
}
max = min = pmax = pmin = num[ 0 ]
k1 = k2 = k3 = k4 = sub[ 0 ]
for ( i = 1i <ni ++ ) {
if ( max <= num[ i ] ) { //最大值
max = num[ i ]
k1 = sub[ i ]
}
if ( min >=num[ i ] ) { //最小值
min = num[i]
k3 = sub[i]
}
if ( pmax <=num[ i ] &&num[ i ] !=max ) { //次大值
pmax = num[ i ]
k2 = sub[ i ]
}
if ( pmin >= num[ i ] &&num[ i ] !=min ) { //次小值
pmin = num[ i ]
k4 = sub[ i ]
}
}
printf ( "max=%d,maxNum=%d\n pmax=%d,pmaxNum=%d\nmin=%d,minNum=%d \npmin=%d,pminNum=%d\n", max, k1, pmax, k2, min, k3, pmin, k4 )
return 0
}