|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include<stdio.h>
- max12(int *a,int n)//n为数组元素个数。
- {
- int i,j,max=0,t,k;
- for(i=0;i<n;i++)
- {
- scanf("%d",a[i]);
- }
- for(i=0;i<n;i++)
- {
- if(a[i]>max)
- {
- max=a[i];
- j=i;
- }
- }
- t=a[0];a[0]=a[j];a[j]=t;//求出最大值,然后将其调到a[0]位子。
- max=0;//从新赋值,求第二个最大值。
- for(i=1;i<n;i++)//从a[1]开始在查找一边,求第二个最大值。
- {
- if(a[i]>max)
- {
- max=a[i];
- k=i;
- }
- }
- printf("最大值%d\n次最大值%d\n",a[j],a[k]);
- }
- int main()
- {
- int c,a[5];
- c=max12(a,5);
- return c;
- }
复制代码
本帖最后由 jackz007 于 2021-12-26 16:11 编辑
- #include<stdio.h>
- void max12(int * a , int n)
- {
- int i , j , max , t ;
- for(i = 0 ; i < n ; i ++) scanf("%d" , & a[i]) ; // 学了这么长时间编程,不会不知道 scanf() 需要提供变量地址的事情吧?
- for(i = 0 ; i < n ; i ++)
- {
- for(max = j = i ; j < n ; j ++) if(a[j] > a[max]) max = j ;
- if(max != i)
- {
- t = a[max] ;
- a[max] = a[i] ;
- a[i] = t ;
- }
- }
- printf("最大值%d\n次最大值%d\n" , a[0] , a[1]) ;
- }
- int main(void)
- {
- int c , a[5] ;
- max12(a , 5) ;
- }
复制代码
|
|